{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 11. Pandas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas es un paquete de Python que proporciona estructuras de datos __rápidas, flexibles y expresivas__ diseñadas para que trabajar con datos __\"relacionales\" o \"etiquetados\"__ sea fácil e intuitivo, es una de las librerias más usadas debido a su potencia y además es de código abierto . Su función es ser una herramienta de alto nivel para realizar__ analisis de datos__ en el mundo real. \n", "\n", "Pandas es muy adecuado para muchos tipos diferentes de datos:\n", "\n", "- Datos tabulares con columnas de tipo heterogéneo, como en una tabla de SQL o una hoja de cálculo de Excel\n", "- Datos de series de tiempo ordenados y no ordenados (no necesariamente de frecuencia fija).\n", "- Datos de matriz arbitraria (homogéneamente tipados o heterogéneos) con etiquetas de fila y columna\n", "- Cualquier otra forma de conjuntos de datos observacionales / estadísticos. Los datos realmente no necesitan ser etiquetados en absoluto para ser colocados en una estructura de datos pandas.\n", "\n", "Pandas ofrece las siguientes estructuras de datos:\n", "\n", "* __Series__: Son arrays unidimensionales con indexación (arrays con índice o etiquetados), similar a los diccionarios. Pueden generarse a partir de diccionarios o de listas.\n", " \n", "* __DataFrame__: Son estructuras de datos similares a las tablas de bases de datos relacionales como SQL.\n", " \n", "* __Panel, Panel4D y PanelND__: Estas estructuras de datos permiten trabajar con más de dos dimensiones. Dado que es algo complejo y poco utilizado trabajar con arrays de más de dos dimensiones no trataremos los paneles en estos tutoriales de introdución a Pandas.\n", "\n", "Aquí están algunas de las cosas que los pandas hacen bien:\n", "\n", "- Manejo fácil de __datos faltantes__ (representados como __NaN__) en punto flotante así como datos de punto no flotante.\n", "- Cambios de tamaño: las columnas se pueden __insertar y eliminar__ de DataFrame y objetos de dimensiones superiores.\n", "- __Alineación automática y explícita de datos__: los objetos pueden alinearse explícitamente con un conjunto de etiquetas, o el usuario puede simplemente ignorar las etiquetas y dejar que Series, DataFrame, etc. alineen automáticamente los datos en cálculos.\n", "- Potente y flexible al __agrupar por funcionalidad__ para realizar operaciones __split-apply-combine__ en conjuntos de datos, tanto para la agregación como para la transformación de datos.\n", "- __Facilita la conversión__ de datos desiguales y diferenciados en otras estructuras de datos Python y NumPy en objetos DataFrame.\n", "- Recorte inteligente basado en __slicing, fancy indexing, y subsetting__ de grandes conjuntos de datos.\n", "- Robustas herramientas de IO para cargar datos de __archivos planos__ (CSV y delimitado), archivos de Excel, bases de datos y guardar / cargar datos desde el formato __HDF5 ultrarrápido__.\n", "- __Funciones específicas de series de tiempo__: generación de intervalos de fechas y conversión de frecuencia, estadísticas de ventanas en movimiento, regresiones lineales de ventanas en movimiento, cambio de fecha y retraso, etc.\n", "\n", "Para los científicos de datos, el trabajo con datos suele dividirse en múltiples etapas: muestrear y limpiar los datos, analizarlos o modelarlos, y luego organizar los resultados del análisis en una forma adecuada para representación gráfica o tabular. Pandas es la herramienta ideal para todas estas tareas.\n", "\n", "Otras notas:\n", "\n", "- Pandas es __rápido__. Muchos de los bits algorítmicos de bajo nivel se han modificado extensamente en el código de Cython. Sin embargo, como con cualquier otra cosa, la generalización suele sacrificar el rendimiento. Así que si usted se centra en una característica para su aplicación que puede ser capaz de crear una herramienta especializada más rápida.\n", "- Pandas es una dependencia de __statsmodels__, por lo que es una parte importante del ecosistema de computación estadística en Python.\n", "- Pandas ha sido ampliamente utilizado en la producción en __aplicaciones financieras__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahora empecemos importando pandas:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Forma convencional de importar pandas:\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Importando matplotlib para graficar \n", "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "plt.rcParams['figure.figsize'] = (15, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Estructuras de Datos\n", "------------------------------\n", "\n", "### Series\n", "\n", "La estructura de datos de Series en Pandas es una matriz etiquetada unidimensional.\n", "\n", "- Los datos de la matriz pueden ser de cualquier tipo (números enteros, cadenas, números de punto flotante, objetos Python, etc.).\n", "\n", "- Los datos dentro de la matriz son homogéneos.\n", "\n", "- Los datos pueden ser listas, arrays, o un diccionario.\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 33\n", "1 19\n", "2 15\n", "3 89\n", "4 11\n", "5 -5\n", "6 9\n", "dtype: int64" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Constructor de serie con datos como una lista de enteros\n", "s1 = pd.Series([33, 19, 15, 89, 11, -5, 9])\n", "s1" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pandas.core.series.Series" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Tipo de serie es la serie pandas\n", "type(s1)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([33, 19, 15, 89, 11, -5, 9])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Recupera los valores de la serie \n", "s1.values" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Tipo de valores de datos es NumPy ndarray\n", "type(s1.values)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Alt text](../images/series.jpg \"Optional title\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Mon 33\n", "Tue 19\n", "Wed 15\n", "Thu 89\n", "Fri 11\n", "Sat -5\n", "Sun 9\n", "dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Define los datos e indices como listas\n", "data1 = [33, 19, 15, 89, 11, -5, 9]\n", "index1 = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']\n", "\n", "# Crea la serie \n", "s2 = pd.Series(data1, index=index1)\n", "\n", "s2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "![Alt text](../images/series2.jpg \"Optional title\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Weekday\n", "Mon 33\n", "Tue 19\n", "Wed 15\n", "Thu 89\n", "Fri 11\n", "Sat -5\n", "Sun 9\n", "Name: Daily Temperatures, dtype: int64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# También podemos dar etiquetas significativas a los datos de la serie y el índice\n", "\n", "s2.name='Daily Temperatures'\n", "s2.index.name='Weekday'\n", "\n", "s2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La representación más general de una serie es como un almacén de key-values ordenado.\n", "\n", "- El orden es representado por el offset.\n", "- El valor-clave es una asignación de índice o etiqueta a los valores de matriz de datos.\n", "- Indice como \"offset\" o \"posición\" vs índice como \"etiqueta\" o \"clave\".\n", "\n", "![Alt text](../images/series3.jpg \"Optional title\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Al ser las series de tipo__NumPy-ndarray__ podemos efectuar las mismas operaciones que hicimos en Numpy:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Weekday\n", "Mon 66\n", "Tue 38\n", "Wed 30\n", "Thu 178\n", "Fri 22\n", "Sat -10\n", "Sun 18\n", "Name: Daily Temperatures, dtype: int64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2 * 2" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Weekday\n", "Mon 33\n", "Tue 19\n", "Wed 15\n", "Name: Daily Temperatures, dtype: int64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Podemos usar el slicing usando la posicion\n", "s2[0:3]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "Weekday\n", "Mon 33\n", "Tue 19\n", "Wed 15\n", "Name: Daily Temperatures, dtype: int64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Tambien podemos usar slicin usando sus etiquetas(labes)\n", "s2['Mon':'Wed']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Uniendo Series" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bedrsbathrsprice_sqr_meter
01219510
12115190
21216107
31122991
42224508
\n", "
" ], "text/plain": [ " bedrs bathrs price_sqr_meter\n", "0 1 2 19510\n", "1 2 1 15190\n", "2 1 2 16107\n", "3 1 1 22991\n", "4 2 2 24508" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "s1 = pd.Series(np.random.randint(1, high=5, size=100, dtype='l'))\n", "s2 = pd.Series(np.random.randint(1, high=4, size=100, dtype='l'))\n", "s3 = pd.Series(np.random.randint(10000, high=30001, size=100, dtype='l'))\n", "\n", "housemkt = pd.concat([s1, s2, s3], axis=1)\n", "housemkt.rename(columns = {0: 'bedrs', 1: 'bathrs', 2: 'price_sqr_meter'}, inplace=True)\n", "\n", "housemkt.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dataframes\n", "\n", "La estructura de datos de DataFrame en Pandas es una matriz etiquetada bidimensional.\n", "\n", "- Los datos de la matriz pueden ser de cualquier tipo (números enteros, cadenas, números de punto flotante, objetos Python, etc.).\n", "- Los datos dentro de cada columna son homogéneos\n", "- De forma predeterminada, Pandas crea un índice numérico para las filas en la secuencia 0 ... n\n", "\n", "![Alt text](../images/dataframe.jpg \"Optional title\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import datetime\n", "\n", "# Creamos una lista de fechas desde 12-01 to 12-10\n", "dt = datetime.datetime(2016,12,1)\n", "end = datetime.datetime(2016,12,10)\n", "step = datetime.timedelta(days=1)\n", "dates = []\n", "\n", "# Rellenar la lista\n", "while dt < end:\n", " dates.append(dt.strftime('%m-%d'))\n", " dt += step" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['12-01',\n", " '12-02',\n", " '12-03',\n", " '12-04',\n", " '12-05',\n", " '12-06',\n", " '12-07',\n", " '12-08',\n", " '12-09']" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dates" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ArequipaDateLimaPuno
01512-0120-2
11912-02180
21512-03232
31112-04195
4912-05257
5812-0627-5
61312-0723-3
71412-08294
81612-09307
\n", "
" ], "text/plain": [ " Arequipa Date Lima Puno\n", "0 15 12-01 20 -2\n", "1 19 12-02 18 0\n", "2 15 12-03 23 2\n", "3 11 12-04 19 5\n", "4 9 12-05 25 7\n", "5 8 12-06 27 -5\n", "6 13 12-07 23 -3\n", "7 14 12-08 29 4\n", "8 16 12-09 30 7" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d = {'Date': dates, 'Arequipa' : [15,19,15,11,9,8,13,14,16], 'Puno': [-2,0,2,5,7,-5,-3,4,7], 'Lima':[20,18,23,19,25,27,23,29,30]}\n", "temps = pd.DataFrame(d)\n", "temps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Leyendo data de un archivo csv \n", "\n", "Puede leer datos de un archivo __CSV__ (comma-separated values) utilizando la función read_csv. \n", "\n", "Vamos a buscar algunos datos de avistamientos de ovnis." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Leyendo el dataset de reportes de avistamientos en un dataframe\n", "ufo = pd.read_csv('../data/ufo.csv')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityColors ReportedShape ReportedStateTime
0IthacaNaNTRIANGLENY6/1/1930 22:00
1WillingboroNaNOTHERNJ6/30/1930 20:00
2HolyokeNaNOVALCO2/15/1931 14:00
3AbileneNaNDISKKS6/1/1931 13:00
4New York Worlds FairNaNLIGHTNY4/18/1933 19:00
\n", "
" ], "text/plain": [ " City Colors Reported Shape Reported State Time\n", "0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00\n", "1 Willingboro NaN OTHER NJ 6/30/1930 20:00\n", "2 Holyoke NaN OVAL CO 2/15/1931 14:00\n", "3 Abilene NaN DISK KS 6/1/1931 13:00\n", "4 New York Worlds Fair NaN LIGHT NY 4/18/1933 19:00" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Examinamos las 5 primeras filas\n", "ufo.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Documentacion de [read_csv](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "También podemos leer data de una web, en este caso leeremos un archivo __TSV__ (Tabular-separated-values): con __read_table__:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
order_idquantityitem_namechoice_descriptionitem_price
461718331Steak Burrito[Fresh Tomato Salsa, [Rice, Black Beans, Sour ...$11.75
461818331Steak Burrito[Fresh Tomato Salsa, [Rice, Sour Cream, Cheese...$11.75
461918341Chicken Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Pinto...$11.25
462018341Chicken Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Lettu...$8.75
462118341Chicken Salad Bowl[Fresh Tomato Salsa, [Fajita Vegetables, Pinto...$8.75
\n", "
" ], "text/plain": [ " order_id quantity item_name \\\n", "4617 1833 1 Steak Burrito \n", "4618 1833 1 Steak Burrito \n", "4619 1834 1 Chicken Salad Bowl \n", "4620 1834 1 Chicken Salad Bowl \n", "4621 1834 1 Chicken Salad Bowl \n", "\n", " choice_description item_price \n", "4617 [Fresh Tomato Salsa, [Rice, Black Beans, Sour ... $11.75 \n", "4618 [Fresh Tomato Salsa, [Rice, Sour Cream, Cheese... $11.75 \n", "4619 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... $11.25 \n", "4620 [Fresh Tomato Salsa, [Fajita Vegetables, Lettu... $8.75 \n", "4621 [Fresh Tomato Salsa, [Fajita Vegetables, Pinto... $8.75 " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leyendo el dataset de ordenes de Chipotle de una URL y guardar los resultados en un dataframe\n", "orders = pd.read_table('http://bit.ly/chiporders')\n", "\n", "#mostramos las ultimas filas\n", "orders.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para seleccionar una Columna o __\"Serie\"__ usamos la notacion []:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0 Ithaca\n", "1 Willingboro\n", "2 Holyoke\n", "3 Abilene\n", "4 New York Worlds Fair\n", "Name: City, dtype: object" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ufo['City'].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tambien podemos usar la notación punto (__.__):" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Ithaca\n", "1 Willingboro\n", "2 Holyoke\n", "3 Abilene\n", "4 New York Worlds Fair\n", "Name: City, dtype: object" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ufo.City.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La notacion de brackets [] o corchetes siempre funciona mientras que la notación del punto tiene limitaciones:\n", "\n", "- La notación de puntos no funciona si hay espacios en el nombre de la serie\n", "- La notación de puntos no funciona si la Serie tiene el mismo nombre que un método o atributo de DataFrame (como 'head' o 'shape')\n", "- No se puede utilizar la notación de puntos para definir el nombre de una nueva serie (véase más adelante)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingtitlecontent_ratinggenredurationactors_list
09.3The Shawshank RedemptionRCrime142[u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt...
19.2The GodfatherRCrime175[u'Marlon Brando', u'Al Pacino', u'James Caan']
29.1The Godfather: Part IIRCrime200[u'Al Pacino', u'Robert De Niro', u'Robert Duv...
39.0The Dark KnightPG-13Action152[u'Christian Bale', u'Heath Ledger', u'Aaron E...
48.9Pulp FictionRCrime154[u'John Travolta', u'Uma Thurman', u'Samuel L....
\n", "
" ], "text/plain": [ " star_rating title content_rating genre duration \\\n", "0 9.3 The Shawshank Redemption R Crime 142 \n", "1 9.2 The Godfather R Crime 175 \n", "2 9.1 The Godfather: Part II R Crime 200 \n", "3 9.0 The Dark Knight PG-13 Action 152 \n", "4 8.9 Pulp Fiction R Crime 154 \n", "\n", " actors_list \n", "0 [u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt... \n", "1 [u'Marlon Brando', u'Al Pacino', u'James Caan'] \n", "2 [u'Al Pacino', u'Robert De Niro', u'Robert Duv... \n", "3 [u'Christian Bale', u'Heath Ledger', u'Aaron E... \n", "4 [u'John Travolta', u'Uma Thurman', u'Samuel L.... " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leyendo un dataset de las top-rated IMDb movies en un dataframe\n", "\n", "movies = pd.read_csv('../data/imdb.csv')\n", "movies.head()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingduration
count979.000000979.000000
mean7.889785120.979571
std0.33606926.218010
min7.40000064.000000
25%7.600000102.000000
50%7.800000117.000000
75%8.100000134.000000
max9.300000242.000000
\n", "
" ], "text/plain": [ " star_rating duration\n", "count 979.000000 979.000000\n", "mean 7.889785 120.979571\n", "std 0.336069 26.218010\n", "min 7.400000 64.000000\n", "25% 7.600000 102.000000\n", "50% 7.800000 117.000000\n", "75% 8.100000 134.000000\n", "max 9.300000 242.000000" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Método describe: calcula un resumen de estadísticas\n", "\n", "movies.describe()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(979, 6)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "movies.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Porqué algunos comandos de pandas terminan en parentesis y otros no?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Los __métodos__ terminan con paréntesis, mientras que los __atributos__ no" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "star_rating float64\n", "title object\n", "content_rating object\n", "genre object\n", "duration int64\n", "actors_list object\n", "dtype: object" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Ejemplo de atributo: obtener el data type de cada columna\n", "movies.dtypes" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titlecontent_ratinggenreactors_list
count979976979979
unique9751216969
topThe Girl with the Dragon TattooRDrama[u'Daniel Radcliffe', u'Emma Watson', u'Rupert...
freq24602786
\n", "
" ], "text/plain": [ " title content_rating genre \\\n", "count 979 976 979 \n", "unique 975 12 16 \n", "top The Girl with the Dragon Tattoo R Drama \n", "freq 2 460 278 \n", "\n", " actors_list \n", "count 979 \n", "unique 969 \n", "top [u'Daniel Radcliffe', u'Emma Watson', u'Rupert... \n", "freq 6 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Utilice un parámetro opcional para describir el método para resumir sólo las columnas 'object'\n", "movies.describe(include=['object'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahora vamos a obtener el numero de peliculas por clasificación de contenido ( R, PG-13, PG.. etc):" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true }, "outputs": [], "source": [ "movie_ratings = movies['content_rating'].value_counts()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nb1pVXdrdJ8xdx7JxXzbmvuzIPdmY+7Ix92Vj7suO3JONuS8bc1825r7saNR7cqC2GPhQkuOq6iFV\ndc8kpya58AD9LAAAgJVxQHriuvvWqvqZJH+SxRYDr+vuKw7EzwIAAFglB2yfuO7+4yR/fKD+/ANo\n6YZ4Lgn3ZWPuy47ck425LxtzXzbmvuzIPdmY+7Ix92Vj7suOhrwnB2RhEwAAAA6MAzUnDgAAgANA\niAMAABiIEAcAwJCq6h/t4to/2cpaYCsJcRuoqoOq6kfmrgOWXVUdUlXfX1W/MH09s6oO2IJJcHdT\nVSdX1QvXnH+wqj49ff3wnLXBIN5TVS+tqoO3N1TV4VX1u0n+04x1za6qHlNVP1xV3zp3Lcuqqg6t\nqudX1UVz17K3VjrEVdX9quqsqvr1qvqeWvhXST6d5Nlz1zenKcgeNB3fs6oeW1UPmLuuOXmzdVdV\ndWSSK5K8JMk3JjkyyS8kuaKqvnHO2uZWVQ+rqldW1UXT1yuq6mFz17UMquq0qrqsqv5++rq0qv75\n3HXN6KW56z6q90ry+CRPTfLTcxS0LLyOdjS9dv5tVR07dy1L5HFJjk1yeVWdWFUvSnJJkvcnecKs\nlc2oqn4xyQVJfijJRVX1kzOXtDSm97U/WFW/n+RzSU5M8pszl7XXVv0T8zcm+VIWL/SfSPKyJJXk\nlO6+fM7C5lRVpyT5L0lur6qfyuK+fDnJw6rqp7v7bbMWOJ+XZrFx/Xbb32wdmuT1Sf5gjqJmdHaS\n/9zdr1rbWFX/Osl/THLaLFXNrKq+LckfZvEaOjeLf1OOT/LuqnpWd39gzvrmVFWnJfnZJC9OclkW\n9+axSX61qrq73zhnfTO5Z3dfv+b8fd19c5Kbq+rQuYqam9fRTh2W5P5Z3IfPJ3lTkt/r7s/OW9Z8\nuvtLSV4whbc/S/LZJE/q7hvmrWx2z0nymO7+SlU9MMk7k/zWzDXNqqq+J8lzk3xPkncn+Z0kj+/u\nfzFrYZu00lsMVNXHu/uR0/HBWaTxf9Td/2feyuZVVR9J8r1J7p3ko1n8gl9VVQ9O8ubuPmHWAmdS\nVR/q7sevOf/17v6Z6fgD3f2k+arbelX1V939LTu5dlV3r+Qn5lX1jiQv7+73rGv/ziRndvf3zlLY\nEqiqDyQ5tbuvXdd+TJLzV+01lCRVdXV3f9NOrv2/3b2SPS5eRxurqsu6+7HT8T/J4g3ps5J8Msmb\nunvI/a72RVXdP8nLkzwxiw9bvy/JSUle1N1/Pmdtc1r7uzKdf7i7HzdnTXOrqtuTvDfJj3X3NVPb\np7v7ofNWtjkrPZwyyde2H3T3bUluWPUAt113f376Bf/r7r5qarsuq/07c9jak+0BbrJti2tZBv97\nF9e+smVVLJ9j17/xTJLu/oskQ/5HsR/db32AS5Kp7X5bXs1y+OBGw5yq6gVZDAlbVV5Hu9Hd7+3u\nf5nFUPaXJ/m2mUuay2VJPpXkhO7+0+7+2STPT/IfqupN85Y2q4dW1YXT19uSHLv9uKou3O2z754e\nm8Xouz+rqndV1elJDt7Nc5bWqg+nfHRV/e10XEnuPZ1Xku7uVX1Tkao6qLtvT/Lja9oOTnLP+aqa\n3Qer6ie7+y7DEVb4zdbXV9WzNmivrO4b8iT5u11c+/stq2I57Sr47+ra3dnPJXlLVT0vizejyWKO\nz72SnDJbVfPzOtrY/1zfMH0I/c7paxU9Zf3QyWlKzLev+Dywk9edvyLJ9uF3tcW1LIXp9+LyJGdW\n1bdn0ZN9j6nn/49G68le6eGUbKyqHp/k4+t7JachT9/R3b87R11zq6pvSPKWJLdkgzdb3f2FuWqb\nQ1W9IXf+h7CDUceY76uqujHJ+RtdSvLs7j58i0taGlX1lSRXb3QpyUO7e5XngJ2Y5BHT6RWrPAws\n8TqCfVVVJyc5qrt/Yzq/JItRQ53k33T3789Z37KYFvH7p1kM9f/x3T1+mQhxsJe82WJXpsU7dqq7\nz9uqWpbNNK92p6Yh2+B1tAlV9S+6+/Vz18FyqKr/kUUwuX46vzyLuYKHJnl9d580Z31zqKrH7up6\nd1+2q+vLRohjr1TVO1Z4QvnXJfmpJN+U5ONJXtvdt85b1Xyq6lXT3INU1Yu6+9Vrrr2hu39stuKW\nVFUdsuK/M9/S3X81Hd+ru29Zc+1JK7ziIHth1V9HO1NVf93dO934mtViMbYdTQubfCLJF7c3rbnc\n3X3i1le1eas+J44N7OKTikrymK2sZcmcl8ViOO/NYvXOb81iufRV9ZQ1x6clefWa80dtcS1Lo6re\n193fMR2/sbufv+byJVlMrF5V/y13/v3fn7vei9dkte8Na3gdbayqPrazS0kMMWUti7Ht6MVJfjiL\nOdjnZzEP7svzlrR5Qhwb+VCSv8jGE1/vv8W1LJOHr9mS4rVZzcVM1qqdHK+6tfO6HrHu2qrfp139\n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\n5P8HcC12GKrmj8YAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "movie_ratings.plot(kind='bar')" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityColors ReportedShape ReportedStateTime
0IthacaNaNTRIANGLENY6/1/1930 22:00
1WillingboroNaNOTHERNJ6/30/1930 20:00
2HolyokeNaNOVALCO2/15/1931 14:00
3AbileneNaNDISKKS6/1/1931 13:00
4New York Worlds FairNaNLIGHTNY4/18/1933 19:00
\n", "
" ], "text/plain": [ " City Colors Reported Shape Reported State Time\n", "0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00\n", "1 Willingboro NaN OTHER NJ 6/30/1930 20:00\n", "2 Holyoke NaN OVAL CO 2/15/1931 14:00\n", "3 Abilene NaN DISK KS 6/1/1931 13:00\n", "4 New York Worlds Fair NaN LIGHT NY 4/18/1933 19:00" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Examinamos las 5 ultimas filas\n", "ufo = pd.read_csv('../data/ufo.csv')\n", "ufo.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Los nombres de cada columna deben de tratar de no tener espacios, para ello podemos cambiar el nombre de las columnas de distintas formas como:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
citycolors_reportedshape_reportedstatetime
0IthacaNaNTRIANGLENY6/1/1930 22:00
1WillingboroNaNOTHERNJ6/30/1930 20:00
2HolyokeNaNOVALCO2/15/1931 14:00
3AbileneNaNDISKKS6/1/1931 13:00
4New York Worlds FairNaNLIGHTNY4/18/1933 19:00
\n", "
" ], "text/plain": [ " city colors_reported shape_reported state time\n", "0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00\n", "1 Willingboro NaN OTHER NJ 6/30/1930 20:00\n", "2 Holyoke NaN OVAL CO 2/15/1931 14:00\n", "3 Abilene NaN DISK KS 6/1/1931 13:00\n", "4 New York Worlds Fair NaN LIGHT NY 4/18/1933 19:00" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Reemplazar todos los nombres de columnas sobrescribiendo el atributo 'columnas'\n", "ufo_cols = ['city', 'colors_reported', 'shape_reported', 'state', 'time']\n", "ufo.columns = ufo_cols\n", "ufo.head()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cityColors_Reported_testShape_Reported_teststatetime
0IthacaNaNTRIANGLENY6/1/1930 22:00
1WillingboroNaNOTHERNJ6/30/1930 20:00
2HolyokeNaNOVALCO2/15/1931 14:00
3AbileneNaNDISKKS6/1/1931 13:00
4New York Worlds FairNaNLIGHTNY4/18/1933 19:00
\n", "
" ], "text/plain": [ " city Colors_Reported_test Shape_Reported_test state \\\n", "0 Ithaca NaN TRIANGLE NY \n", "1 Willingboro NaN OTHER NJ \n", "2 Holyoke NaN OVAL CO \n", "3 Abilene NaN DISK KS \n", "4 New York Worlds Fair NaN LIGHT NY \n", "\n", " time \n", "0 6/1/1930 22:00 \n", "1 6/30/1930 20:00 \n", "2 2/15/1931 14:00 \n", "3 6/1/1931 13:00 \n", "4 4/18/1933 19:00 " ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Renombrar dos de las columnas mediante el método 'rename'\n", "ufo.rename(columns={'colors_reported':'Colors_Reported_test', 'shape_reported':'Shape_Reported_test'}, inplace=True)\n", "ufo.head()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Para remover una columna usamos el método __drop__ :" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cityShape_Reported_teststatetime
0IthacaTRIANGLENY6/1/1930 22:00
1WillingboroOTHERNJ6/30/1930 20:00
2HolyokeOVALCO2/15/1931 14:00
3AbileneDISKKS6/1/1931 13:00
4New York Worlds FairLIGHTNY4/18/1933 19:00
\n", "
" ], "text/plain": [ " city Shape_Reported_test state time\n", "0 Ithaca TRIANGLE NY 6/1/1930 22:00\n", "1 Willingboro OTHER NJ 6/30/1930 20:00\n", "2 Holyoke OVAL CO 2/15/1931 14:00\n", "3 Abilene DISK KS 6/1/1931 13:00\n", "4 New York Worlds Fair LIGHT NY 4/18/1933 19:00" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Eliminar una columna (axis=1 se refiere a columnas)\n", "ufo.drop('Colors_Reported_test', axis=1, inplace=True)\n", "ufo.head()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cityShape_Reported_test
0IthacaTRIANGLE
1WillingboroOTHER
2HolyokeOVAL
3AbileneDISK
4New York Worlds FairLIGHT
\n", "
" ], "text/plain": [ " city Shape_Reported_test\n", "0 Ithaca TRIANGLE\n", "1 Willingboro OTHER\n", "2 Holyoke OVAL\n", "3 Abilene DISK\n", "4 New York Worlds Fair LIGHT" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Eliminar varias columnas a la vez\n", "ufo.drop(['state', 'time'], axis=1, inplace=True)\n", "ufo.head()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cityShape_Reported_test
2HolyokeOVAL
3AbileneDISK
4New York Worlds FairLIGHT
5Valley CityDISK
6Crater LakeCIRCLE
\n", "
" ], "text/plain": [ " city Shape_Reported_test\n", "2 Holyoke OVAL\n", "3 Abilene DISK\n", "4 New York Worlds Fair LIGHT\n", "5 Valley City DISK\n", "6 Crater Lake CIRCLE" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Eliminar varias filas a la vez (axis=0 se refiere a filas)\n", "ufo.drop([0, 1], axis=0, inplace=True)\n", "ufo.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Filtering y Sorting" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingtitlecontent_ratinggenredurationactors_list
09.3The Shawshank RedemptionRCrime142[u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt...
19.2The GodfatherRCrime175[u'Marlon Brando', u'Al Pacino', u'James Caan']
29.1The Godfather: Part IIRCrime200[u'Al Pacino', u'Robert De Niro', u'Robert Duv...
39.0The Dark KnightPG-13Action152[u'Christian Bale', u'Heath Ledger', u'Aaron E...
48.9Pulp FictionRCrime154[u'John Travolta', u'Uma Thurman', u'Samuel L....
\n", "
" ], "text/plain": [ " star_rating title content_rating genre duration \\\n", "0 9.3 The Shawshank Redemption R Crime 142 \n", "1 9.2 The Godfather R Crime 175 \n", "2 9.1 The Godfather: Part II R Crime 200 \n", "3 9.0 The Dark Knight PG-13 Action 152 \n", "4 8.9 Pulp Fiction R Crime 154 \n", "\n", " actors_list \n", "0 [u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt... \n", "1 [u'Marlon Brando', u'Al Pacino', u'James Caan'] \n", "2 [u'Al Pacino', u'Robert De Niro', u'Robert Duv... \n", "3 [u'Christian Bale', u'Heath Ledger', u'Aaron E... \n", "4 [u'John Travolta', u'Uma Thurman', u'Samuel L.... " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Examinamos las 5 primeras filas\n", "movies = pd.read_csv('../data/imdb.csv')\n", "movies.head()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "864 [Rec]\n", "526 Zulu\n", "615 Zombieland\n", "677 Zodiac\n", "955 Zero Dark Thirty\n", "Name: title, dtype: object" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Si queremos ordenar usamos el metodo sort_values()\n", "\n", "movies.title.sort_values(ascending=False).head() # En este caso ordenamos de forma descendente" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingtitlecontent_ratinggenredurationactors_list
39.0The Dark KnightPG-13Action152[u'Christian Bale', u'Heath Ledger', u'Aaron E...
78.9The Lord of the Rings: The Return of the KingPG-13Adventure201[u'Elijah Wood', u'Viggo Mortensen', u'Ian McK...
108.8The Lord of the Rings: The Fellowship of the RingPG-13Adventure178[u'Elijah Wood', u'Ian McKellen', u'Orlando Bl...
118.8InceptionPG-13Action148[u'Leonardo DiCaprio', u'Joseph Gordon-Levitt'...
138.8Forrest GumpPG-13Drama142[u'Tom Hanks', u'Robin Wright', u'Gary Sinise']
\n", "
" ], "text/plain": [ " star_rating title \\\n", "3 9.0 The Dark Knight \n", "7 8.9 The Lord of the Rings: The Return of the King \n", "10 8.8 The Lord of the Rings: The Fellowship of the Ring \n", "11 8.8 Inception \n", "13 8.8 Forrest Gump \n", "\n", " content_rating genre duration \\\n", "3 PG-13 Action 152 \n", "7 PG-13 Adventure 201 \n", "10 PG-13 Adventure 178 \n", "11 PG-13 Action 148 \n", "13 PG-13 Drama 142 \n", "\n", " actors_list \n", "3 [u'Christian Bale', u'Heath Ledger', u'Aaron E... \n", "7 [u'Elijah Wood', u'Viggo Mortensen', u'Ian McK... \n", "10 [u'Elijah Wood', u'Ian McKellen', u'Orlando Bl... \n", "11 [u'Leonardo DiCaprio', u'Joseph Gordon-Levitt'... \n", "13 [u'Tom Hanks', u'Robin Wright', u'Gary Sinise'] " ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Identificamos: los indices se mantienen con cada fila cuando filtramos el dataframe\n", "movies[movies.content_rating=='PG-13'].head()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingtitlecontent_ratinggenredurationactors_list
5427.8(500) Days of SummerPG-13Comedy95[u'Zooey Deschanel', u'Joseph Gordon-Levitt', ...
58.912 Angry MenNOT RATEDDrama96[u'Henry Fonda', u'Lee J. Cobb', u'Martin Bals...
2018.112 Years a SlaveRBiography134[u'Chiwetel Ejiofor', u'Michael Kenneth Willia...
6987.6127 HoursRAdventure94[u'James Franco', u'Amber Tamblyn', u'Kate Mara']
1108.32001: A Space OdysseyGMystery160[u'Keir Dullea', u'Gary Lockwood', u'William S...
\n", "
" ], "text/plain": [ " star_rating title content_rating genre duration \\\n", "542 7.8 (500) Days of Summer PG-13 Comedy 95 \n", "5 8.9 12 Angry Men NOT RATED Drama 96 \n", "201 8.1 12 Years a Slave R Biography 134 \n", "698 7.6 127 Hours R Adventure 94 \n", "110 8.3 2001: A Space Odyssey G Mystery 160 \n", "\n", " actors_list \n", "542 [u'Zooey Deschanel', u'Joseph Gordon-Levitt', ... \n", "5 [u'Henry Fonda', u'Lee J. Cobb', u'Martin Bals... \n", "201 [u'Chiwetel Ejiofor', u'Michael Kenneth Willia... \n", "698 [u'James Franco', u'Amber Tamblyn', u'Kate Mara'] \n", "110 [u'Keir Dullea', u'Gary Lockwood', u'William S... " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Ordenar todo el DataFrame por la serie 'title' (devuelve un DataFrame)\n", "\n", "movies.sort_values('title').head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Objetivo:__ filtrar las filas de DataFrame para mostrar sólo películas con una \"duración\" de al menos 200 minutos." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingtitlecontent_ratinggenredurationactors_list
29.1The Godfather: Part IIRCrime200[u'Al Pacino', u'Robert De Niro', u'Robert Duv...
78.9The Lord of the Rings: The Return of the KingPG-13Adventure201[u'Elijah Wood', u'Viggo Mortensen', u'Ian McK...
178.7Seven SamuraiUNRATEDDrama207[u'Toshir\\xf4 Mifune', u'Takashi Shimura', u'K...
788.4Once Upon a Time in AmericaRCrime229[u'Robert De Niro', u'James Woods', u'Elizabet...
858.4Lawrence of ArabiaPGAdventure216[u\"Peter O'Toole\", u'Alec Guinness', u'Anthony...
1428.3Lagaan: Once Upon a Time in IndiaPGAdventure224[u'Aamir Khan', u'Gracy Singh', u'Rachel Shell...
1578.2Gone with the WindGDrama238[u'Clark Gable', u'Vivien Leigh', u'Thomas Mit...
2048.1Ben-HurGAdventure212[u'Charlton Heston', u'Jack Hawkins', u'Stephe...
4457.9The Ten CommandmentsAPPROVEDAdventure220[u'Charlton Heston', u'Yul Brynner', u'Anne Ba...
4767.8HamletPG-13Drama242[u'Kenneth Branagh', u'Julie Christie', u'Dere...
6307.7Malcolm XPG-13Biography202[u'Denzel Washington', u'Angela Bassett', u'De...
7677.6It's a Mad, Mad, Mad, Mad WorldAPPROVEDAction205[u'Spencer Tracy', u'Milton Berle', u'Ethel Me...
\n", "
" ], "text/plain": [ " star_rating title \\\n", "2 9.1 The Godfather: Part II \n", "7 8.9 The Lord of the Rings: The Return of the King \n", "17 8.7 Seven Samurai \n", "78 8.4 Once Upon a Time in America \n", "85 8.4 Lawrence of Arabia \n", "142 8.3 Lagaan: Once Upon a Time in India \n", "157 8.2 Gone with the Wind \n", "204 8.1 Ben-Hur \n", "445 7.9 The Ten Commandments \n", "476 7.8 Hamlet \n", "630 7.7 Malcolm X \n", "767 7.6 It's a Mad, Mad, Mad, Mad World \n", "\n", " content_rating genre duration \\\n", "2 R Crime 200 \n", "7 PG-13 Adventure 201 \n", "17 UNRATED Drama 207 \n", "78 R Crime 229 \n", "85 PG Adventure 216 \n", "142 PG Adventure 224 \n", "157 G Drama 238 \n", "204 G Adventure 212 \n", "445 APPROVED Adventure 220 \n", "476 PG-13 Drama 242 \n", "630 PG-13 Biography 202 \n", "767 APPROVED Action 205 \n", "\n", " actors_list \n", "2 [u'Al Pacino', u'Robert De Niro', u'Robert Duv... \n", "7 [u'Elijah Wood', u'Viggo Mortensen', u'Ian McK... \n", "17 [u'Toshir\\xf4 Mifune', u'Takashi Shimura', u'K... \n", "78 [u'Robert De Niro', u'James Woods', u'Elizabet... \n", "85 [u\"Peter O'Toole\", u'Alec Guinness', u'Anthony... \n", "142 [u'Aamir Khan', u'Gracy Singh', u'Rachel Shell... \n", "157 [u'Clark Gable', u'Vivien Leigh', u'Thomas Mit... \n", "204 [u'Charlton Heston', u'Jack Hawkins', u'Stephe... \n", "445 [u'Charlton Heston', u'Yul Brynner', u'Anne Ba... \n", "476 [u'Kenneth Branagh', u'Julie Christie', u'Dere... \n", "630 [u'Denzel Washington', u'Angela Bassett', u'De... \n", "767 [u'Spencer Tracy', u'Milton Berle', u'Ethel Me... " ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "is_long = movies.duration >= 200\n", "movies[is_long]\n", "\n", "# O de forma equivalente, escríbalo en una línea (no es necesario crear el objeto 'is_long')\n", "\n", "movies[movies.duration >= 200]" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2 Crime\n", "7 Adventure\n", "17 Drama\n", "78 Crime\n", "85 Adventure\n", "142 Adventure\n", "157 Drama\n", "204 Adventure\n", "445 Adventure\n", "476 Drama\n", "630 Biography\n", "767 Action\n", "Name: genre, dtype: object" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Selecciona la serie 'genre' del DataFrame filtrado\n", "movies[movies.duration >= 200].genre\n", "\n", "# O de forma equivalente, use el método 'loc'\n", "movies.loc[movies.duration >= 200, 'genre']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Meta:__ Filtrar aún más el DataFrame de películas largas (duration> = 200) para mostrar sólo películas que también tienen un 'genre' de 'Drama'" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingtitlecontent_ratinggenredurationactors_list
178.7Seven SamuraiUNRATEDDrama207[u'Toshir\\xf4 Mifune', u'Takashi Shimura', u'K...
1578.2Gone with the WindGDrama238[u'Clark Gable', u'Vivien Leigh', u'Thomas Mit...
4767.8HamletPG-13Drama242[u'Kenneth Branagh', u'Julie Christie', u'Dere...
\n", "
" ], "text/plain": [ " star_rating title content_rating genre duration \\\n", "17 8.7 Seven Samurai UNRATED Drama 207 \n", "157 8.2 Gone with the Wind G Drama 238 \n", "476 7.8 Hamlet PG-13 Drama 242 \n", "\n", " actors_list \n", "17 [u'Toshir\\xf4 Mifune', u'Takashi Shimura', u'K... \n", "157 [u'Clark Gable', u'Vivien Leigh', u'Thomas Mit... \n", "476 [u'Kenneth Branagh', u'Julie Christie', u'Dere... " ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "movies[(movies.duration >=200) & (movies.genre == 'Drama')]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Objetivo:__ Filtrar el DataFrame original para mostrar películas con un 'genre' de 'Crime' o 'Drama' o 'Action' " ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
star_ratingtitlecontent_ratinggenredurationactors_list
09.3The Shawshank RedemptionRCrime142[u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt...
19.2The GodfatherRCrime175[u'Marlon Brando', u'Al Pacino', u'James Caan']
29.1The Godfather: Part IIRCrime200[u'Al Pacino', u'Robert De Niro', u'Robert Duv...
39.0The Dark KnightPG-13Action152[u'Christian Bale', u'Heath Ledger', u'Aaron E...
48.9Pulp FictionRCrime154[u'John Travolta', u'Uma Thurman', u'Samuel L....
58.912 Angry MenNOT RATEDDrama96[u'Henry Fonda', u'Lee J. Cobb', u'Martin Bals...
98.9Fight ClubRDrama139[u'Brad Pitt', u'Edward Norton', u'Helena Bonh...
118.8InceptionPG-13Action148[u'Leonardo DiCaprio', u'Joseph Gordon-Levitt'...
128.8Star Wars: Episode V - The Empire Strikes BackPGAction124[u'Mark Hamill', u'Harrison Ford', u'Carrie Fi...
138.8Forrest GumpPG-13Drama142[u'Tom Hanks', u'Robin Wright', u'Gary Sinise']
\n", "
" ], "text/plain": [ " star_rating title \\\n", "0 9.3 The Shawshank Redemption \n", "1 9.2 The Godfather \n", "2 9.1 The Godfather: Part II \n", "3 9.0 The Dark Knight \n", "4 8.9 Pulp Fiction \n", "5 8.9 12 Angry Men \n", "9 8.9 Fight Club \n", "11 8.8 Inception \n", "12 8.8 Star Wars: Episode V - The Empire Strikes Back \n", "13 8.8 Forrest Gump \n", "\n", " content_rating genre duration \\\n", "0 R Crime 142 \n", "1 R Crime 175 \n", "2 R Crime 200 \n", "3 PG-13 Action 152 \n", "4 R Crime 154 \n", "5 NOT RATED Drama 96 \n", "9 R Drama 139 \n", "11 PG-13 Action 148 \n", "12 PG Action 124 \n", "13 PG-13 Drama 142 \n", "\n", " actors_list \n", "0 [u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt... \n", "1 [u'Marlon Brando', u'Al Pacino', u'James Caan'] \n", "2 [u'Al Pacino', u'Robert De Niro', u'Robert Duv... \n", "3 [u'Christian Bale', u'Heath Ledger', u'Aaron E... \n", "4 [u'John Travolta', u'Uma Thurman', u'Samuel L.... \n", "5 [u'Henry Fonda', u'Lee J. Cobb', u'Martin Bals... \n", "9 [u'Brad Pitt', u'Edward Norton', u'Helena Bonh... \n", "11 [u'Leonardo DiCaprio', u'Joseph Gordon-Levitt'... \n", "12 [u'Mark Hamill', u'Harrison Ford', u'Carrie Fi... \n", "13 [u'Tom Hanks', u'Robin Wright', u'Gary Sinise'] " ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Utiliza el '|' Operador para especificar que una fila puede coincidir con cualquiera de los tres criterios\n", "movies[(movies.genre == 'Crime') | (movies.genre == 'Drama') | (movies.genre == 'Action')].head(10)\n", "\n", "# O de forma equivalente, use el método 'isin'\n", "movies[movies.genre.isin(['Crime', 'Drama', 'Action'])].head(10)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
order_idquantityitem_namechoice_descriptionitem_price
011Chips and Fresh Tomato SalsaNaN$2.39
111Izze[Clementine]$3.39
211Nantucket Nectar[Apple]$3.39
311Chips and Tomatillo-Green Chili SalsaNaN$2.39
422Chicken Bowl[Tomatillo-Red Chili Salsa (Hot), [Black Beans...$16.98
\n", "
" ], "text/plain": [ " order_id quantity item_name \\\n", "0 1 1 Chips and Fresh Tomato Salsa \n", "1 1 1 Izze \n", "2 1 1 Nantucket Nectar \n", "3 1 1 Chips and Tomatillo-Green Chili Salsa \n", "4 2 2 Chicken Bowl \n", "\n", " choice_description item_price \n", "0 NaN $2.39 \n", "1 [Clementine] $3.39 \n", "2 [Apple] $3.39 \n", "3 NaN $2.39 \n", "4 [Tomatillo-Red Chili Salsa (Hot), [Black Beans... $16.98 " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Lee el dataset de Chipotle orders en un DataFrame\n", "\n", "orders = pd.read_table('http://bit.ly/chiporders')\n", "orders.head()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0 2.39\n", "1 3.39\n", "2 3.39\n", "3 2.39\n", "4 16.98\n", "Name: item_price, dtype: float64" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Convierte un string a un numero para poder hacer operaciones matemáticas\n", "\n", "orders.item_price.str.replace('$', '').astype(float).head()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 False\n", "1 False\n", "2 False\n", "3 False\n", "4 True\n", "Name: item_name, dtype: bool" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Método string 'contains' checkea si es que hay un substring que contenga 'Chicken' y retorna una serie booleana\n", "\n", "orders.item_name.str.contains('Chicken').head()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 0\n", "1 0\n", "2 0\n", "3 0\n", "4 1\n", "Name: item_name, dtype: int64" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Convierte una serie booleana a un entero (False = 0 , True = 1)\n", "\n", "orders.item_name.str.contains('Chicken').astype(int).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Grouping " ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countrybeer_servingsspirit_servingswine_servingstotal_litres_of_pure_alcoholcontinent
0Afghanistan0000.0Asia
1Albania89132544.9Europe
2Algeria250140.7Africa
3Andorra24513831212.4Europe
4Angola21757455.9Africa
\n", "
" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0.0 Asia \n", "1 4.9 Europe \n", "2 0.7 Africa \n", "3 12.4 Europe \n", "4 5.9 Africa " ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Lee el dataset de consumo de alcohol en un dataframe\n", "\n", "drinks = pd.read_csv('http://bit.ly/drinksbycountry')\n", "drinks.head()" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "61.471698113207545" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calcula la media de cervezas servidas solo en paises del continente africano\n", "\n", "drinks[drinks.continent=='Africa'].beer_servings.mean()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "continent\n", "Africa 61.471698\n", "Asia 37.045455\n", "Europe 193.777778\n", "North America 145.434783\n", "Oceania 89.687500\n", "South America 175.083333\n", "Name: beer_servings, dtype: float64" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calcula la media de cervezas servidas por cada continente\n", "\n", "drinks.groupby('continent').beer_servings.mean()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
beer_servingsspirit_servingswine_servingstotal_litres_of_pure_alcohol
continent
Africa61.47169816.33962316.2641513.007547
Asia37.04545560.8409099.0681822.170455
Europe193.777778132.555556142.2222228.617778
North America145.434783165.73913024.5217395.995652
Oceania89.68750058.43750035.6250003.381250
South America175.083333114.75000062.4166676.308333
\n", "
" ], "text/plain": [ " beer_servings spirit_servings wine_servings \\\n", "continent \n", "Africa 61.471698 16.339623 16.264151 \n", "Asia 37.045455 60.840909 9.068182 \n", "Europe 193.777778 132.555556 142.222222 \n", "North America 145.434783 165.739130 24.521739 \n", "Oceania 89.687500 58.437500 35.625000 \n", "South America 175.083333 114.750000 62.416667 \n", "\n", " total_litres_of_pure_alcohol \n", "continent \n", "Africa 3.007547 \n", "Asia 2.170455 \n", "Europe 8.617778 \n", "North America 5.995652 \n", "Oceania 3.381250 \n", "South America 6.308333 " ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Especificando una columna a la que se debe aplicar la función de agregación no se requiere\n", "\n", "drinks.groupby('continent').mean()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Diagrama de barras de lado a lado del DataFrame de arriba\n", "\n", "drinks.groupby('continent').beer_servings.mean().plot(kind='bar')" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# bar plot of the 'value_counts' for the 'genre' Series\n", "movies.genre.value_counts().plot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Manejando Valores perdidos o Missing Values\n", "\n", "¿Qué significa \"NaN\"? \n", "\n", "- \"NaN\" no es una cadena, sino que es un valor especial: __numpy.nan__. \n", "- Representa \"Not a number\" e indica un valor faltante. \n", "- __read_csv__ detecta los valores perdidos (de forma predeterminada) al leer el archivo y los reemplaza con este valor especial." ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityColors ReportedShape ReportedStateTime
18236Grant ParkNaNTRIANGLEIL12/31/2000 23:00
18237Spirit LakeNaNDISKIA12/31/2000 23:00
18238Eagle RiverNaNNaNWI12/31/2000 23:45
18239Eagle RiverREDLIGHTWI12/31/2000 23:45
18240YborNaNOVALFL12/31/2000 23:59
\n", "
" ], "text/plain": [ " City Colors Reported Shape Reported State Time\n", "18236 Grant Park NaN TRIANGLE IL 12/31/2000 23:00\n", "18237 Spirit Lake NaN DISK IA 12/31/2000 23:00\n", "18238 Eagle River NaN NaN WI 12/31/2000 23:45\n", "18239 Eagle River RED LIGHT WI 12/31/2000 23:45\n", "18240 Ybor NaN OVAL FL 12/31/2000 23:59" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leyendo el dataset de reportes de avistamientos en un dataframe\n", "ufo = pd.read_csv('../data/ufo.csv')\n", "ufo.tail()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "18236 True\n", "18237 True\n", "18238 True\n", "18239 False\n", "18240 True\n", "Name: Colors Reported, dtype: bool" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Si color reported es null retornara True\n", "ufo['Colors Reported'].isnull().tail()" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "18236 False\n", "18237 False\n", "18238 False\n", "18239 True\n", "18240 False\n", "Name: Colors Reported, dtype: bool" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Caso contrario retornara False con notnull()\n", "ufo['Colors Reported'].notnull().tail()" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityColors ReportedShape ReportedStateTime
21NaNNaNNaNLA8/15/1943 0:00
22NaNNaNLIGHTLA8/15/1943 0:00
204NaNNaNDISKCA7/15/1952 12:30
241NaNBLUEDISKMT7/4/1953 14:00
613NaNNaNDISKNV7/1/1960 12:00
\n", "
" ], "text/plain": [ " City Colors Reported Shape Reported State Time\n", "21 NaN NaN NaN LA 8/15/1943 0:00\n", "22 NaN NaN LIGHT LA 8/15/1943 0:00\n", "204 NaN NaN DISK CA 7/15/1952 12:30\n", "241 NaN BLUE DISK MT 7/4/1953 14:00\n", "613 NaN NaN DISK NV 7/1/1960 12:00" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Nos devuelve el dataframe con las columnas vacias de City\n", "ufo[ufo.City.isnull()].head()" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(18241, 5)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Devuelve el numero de filas y columnas\n", "ufo.shape" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2486, 5)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Si faltan 'algun (any)' valor en una fila entonces elimina esa fila esa fila\n", "ufo.dropna(how='any').shape" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(18241, 5)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Si faltan todos(all) los valores en una fila, entonces elimina esa fila (no se eliminan en este caso)\n", "ufo.dropna(how='all').shape" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(15576, 5)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Si falta algun valor en una fila (teniendo en cuenta sólo 'City' y 'Shape Reported'), entonces se elimina esa fila\n", "ufo.dropna(subset=['City', 'Shape Reported'], how='any').shape" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(18237, 5)" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Si \"all\" los valores estan faltantes en una filla (considerando solo 'City' y 'Shape Reported') entonces elimina esa fila\n", "ufo.dropna(subset=['City', 'Shape Reported'], how='all').shape" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LIGHT 2803\n", "DISK 2122\n", "TRIANGLE 1889\n", "OTHER 1402\n", "CIRCLE 1365\n", "Name: Shape Reported, dtype: int64" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 'value_counts' no incluye missing values por defecto\n", "ufo['Shape Reported'].value_counts().head()" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LIGHT 2803\n", "NaN 2644\n", "DISK 2122\n", "TRIANGLE 1889\n", "OTHER 1402\n", "Name: Shape Reported, dtype: int64" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Incluye explícitamente los missing values\n", "ufo['Shape Reported'].value_counts(dropna=False).head()" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Rellenar los valores faltantes con un valor especificado\n", "ufo['Shape Reported'].fillna(value='VARIOUS', inplace=True)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "VARIOUS 2977\n", "LIGHT 2803\n", "DISK 2122\n", "TRIANGLE 1889\n", "OTHER 1402\n", "Name: Shape Reported, dtype: int64" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Confirmar que los valores faltantes fueron rellenados\n", "ufo['Shape Reported'].value_counts().head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Slicing \n", "\n", "El método __loc__ se utiliza para seleccionar filas y columnas por etiqueta. Puede pasar\n", ": \n", "- Una etiqueta única \n", "- Una lista de etiquetas \n", "- Una porción de etiquetas \n", "- Una serie booleana \n", "- Dos puntos (que indica \"todas las etiquetas\")" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateType of CrimeCrimeYearCount
0AlabamaViolent CrimeMurder and nonnegligent Manslaughter1960406
1AlabamaViolent CrimeMurder and nonnegligent Manslaughter1961427
2AlabamaViolent CrimeMurder and nonnegligent Manslaughter1962316
3AlabamaViolent CrimeMurder and nonnegligent Manslaughter1963340
4AlabamaViolent CrimeMurder and nonnegligent Manslaughter1964316
\n", "
" ], "text/plain": [ " State Type of Crime Crime Year Count\n", "0 Alabama Violent Crime Murder and nonnegligent Manslaughter 1960 406\n", "1 Alabama Violent Crime Murder and nonnegligent Manslaughter 1961 427\n", "2 Alabama Violent Crime Murder and nonnegligent Manslaughter 1962 316\n", "3 Alabama Violent Crime Murder and nonnegligent Manslaughter 1963 340\n", "4 Alabama Violent Crime Murder and nonnegligent Manslaughter 1964 316" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leyendo la data de crimen cometidos en los EEUU\n", "crime_data = pd.read_csv('../data/crime.csv')\n", "crime_data.head()" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "State Alabama\n", "Type of Crime Violent Crime\n", "Crime Murder and nonnegligent Manslaughter\n", "Year 1960\n", "Count 406\n", "Name: 0, dtype: object" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fila 0, todas las columnas\n", "crime_data.loc[0, :]" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateType of CrimeCrimeYearCount
0AlabamaViolent CrimeMurder and nonnegligent Manslaughter1960406
1AlabamaViolent CrimeMurder and nonnegligent Manslaughter1961427
2AlabamaViolent CrimeMurder and nonnegligent Manslaughter1962316
\n", "
" ], "text/plain": [ " State Type of Crime Crime Year Count\n", "0 Alabama Violent Crime Murder and nonnegligent Manslaughter 1960 406\n", "1 Alabama Violent Crime Murder and nonnegligent Manslaughter 1961 427\n", "2 Alabama Violent Crime Murder and nonnegligent Manslaughter 1962 316" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filas 0 , 1 y 2, all columns\n", "crime_data.loc[[0, 1, 2], :]" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateType of CrimeCrimeYearCount
0AlabamaViolent CrimeMurder and nonnegligent Manslaughter1960406
1AlabamaViolent CrimeMurder and nonnegligent Manslaughter1961427
2AlabamaViolent CrimeMurder and nonnegligent Manslaughter1962316
3AlabamaViolent CrimeMurder and nonnegligent Manslaughter1963340
4AlabamaViolent CrimeMurder and nonnegligent Manslaughter1964316
5AlabamaViolent CrimeMurder and nonnegligent Manslaughter1965395
6AlabamaViolent CrimeMurder and nonnegligent Manslaughter1966384
7AlabamaViolent CrimeMurder and nonnegligent Manslaughter1967415
8AlabamaViolent CrimeMurder and nonnegligent Manslaughter1968421
\n", "
" ], "text/plain": [ " State Type of Crime Crime Year Count\n", "0 Alabama Violent Crime Murder and nonnegligent Manslaughter 1960 406\n", "1 Alabama Violent Crime Murder and nonnegligent Manslaughter 1961 427\n", "2 Alabama Violent Crime Murder and nonnegligent Manslaughter 1962 316\n", "3 Alabama Violent Crime Murder and nonnegligent Manslaughter 1963 340\n", "4 Alabama Violent Crime Murder and nonnegligent Manslaughter 1964 316\n", "5 Alabama Violent Crime Murder and nonnegligent Manslaughter 1965 395\n", "6 Alabama Violent Crime Murder and nonnegligent Manslaughter 1966 384\n", "7 Alabama Violent Crime Murder and nonnegligent Manslaughter 1967 415\n", "8 Alabama Violent Crime Murder and nonnegligent Manslaughter 1968 421" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filas 0 a la 8, all columns\n", "crime_data.loc[0:8 , :]" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateType of CrimeCrimeYearCount
0AlabamaViolent CrimeMurder and nonnegligent Manslaughter1960406
1AlabamaViolent CrimeMurder and nonnegligent Manslaughter1961427
2AlabamaViolent CrimeMurder and nonnegligent Manslaughter1962316
3AlabamaViolent CrimeMurder and nonnegligent Manslaughter1963340
\n", "
" ], "text/plain": [ " State Type of Crime Crime Year Count\n", "0 Alabama Violent Crime Murder and nonnegligent Manslaughter 1960 406\n", "1 Alabama Violent Crime Murder and nonnegligent Manslaughter 1961 427\n", "2 Alabama Violent Crime Murder and nonnegligent Manslaughter 1962 316\n", "3 Alabama Violent Crime Murder and nonnegligent Manslaughter 1963 340" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filas 0 a la 3, all columns\n", "crime_data.loc[0:3]" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateCount
0Alabama406
1Alabama427
2Alabama316
3Alabama340
4Alabama316
\n", "
" ], "text/plain": [ " State Count\n", "0 Alabama 406\n", "1 Alabama 427\n", "2 Alabama 316\n", "3 Alabama 340\n", "4 Alabama 316" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filas de la 0 a la 4 (incluyendo) las columnas 'State' y 'Count'\n", "crime_data.loc[0:4, ['State', 'Count']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El método __iloc__ se utiliza para seleccionar filas y columnas por posición entera. Se puede pasar: \n", "\n", "- Una sola posición entera \n", "- Una lista de posiciones enteras \n", "- Una porción de posiciones enteras \n", "- Dos puntos (que indica \"todas las posiciones enteras\")" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateType of CrimeCrimeYearCount
0AlabamaViolent CrimeMurder and nonnegligent Manslaughter1960406
1AlabamaViolent CrimeMurder and nonnegligent Manslaughter1961427
\n", "
" ], "text/plain": [ " State Type of Crime Crime Year Count\n", "0 Alabama Violent Crime Murder and nonnegligent Manslaughter 1960 406\n", "1 Alabama Violent Crime Murder and nonnegligent Manslaughter 1961 427" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filas en la posicion 0 al 2 (excluyente) todas las columnas\n", "crime_data.iloc[0:2, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El método __ix__ se utiliza para seleccionar filas y columnas por etiqueta o posición de número entero, y sólo debe utilizarse cuando se necesita mezclar selección basada en etiquetas y enteros en la misma llamada.\n", "\n", "Reglas para el uso de números con ix: \n", "\n", "- Si el índice es cadenas, los números se tratan como posiciones enteras, y por lo tanto los cortes son exclusivos a la derecha. \n", "- Si el índice es números enteros, los números se tratan como etiquetas y, por lo tanto, los cortes son inclusivos." ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
beer_servingsspirit_servingswine_servingstotal_litres_of_pure_alcoholcontinent
country
Afghanistan0000.0Asia
Albania89132544.9Europe
Algeria250140.7Africa
Andorra24513831212.4Europe
Angola21757455.9Africa
Antigua & Barbuda102128454.9North America
Argentina193252218.3South America
Armenia21179113.8Europe
Australia2617221210.4Oceania
Austria279751919.7Europe
\n", "
" ], "text/plain": [ " beer_servings spirit_servings wine_servings \\\n", "country \n", "Afghanistan 0 0 0 \n", "Albania 89 132 54 \n", "Algeria 25 0 14 \n", "Andorra 245 138 312 \n", "Angola 217 57 45 \n", "Antigua & Barbuda 102 128 45 \n", "Argentina 193 25 221 \n", "Armenia 21 179 11 \n", "Australia 261 72 212 \n", "Austria 279 75 191 \n", "\n", " total_litres_of_pure_alcohol continent \n", "country \n", "Afghanistan 0.0 Asia \n", "Albania 4.9 Europe \n", "Algeria 0.7 Africa \n", "Andorra 12.4 Europe \n", "Angola 5.9 Africa \n", "Antigua & Barbuda 4.9 North America \n", "Argentina 8.3 South America \n", "Armenia 3.8 Europe \n", "Australia 10.4 Oceania \n", "Austria 9.7 Europe " ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leer el dataset de consumo de alcohol en un DataFrame y establecer 'país' como el índice\n", "drinks = pd.read_csv('http://bit.ly/drinksbycountry', index_col='country')\n", "drinks.head(10)" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "89" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fila con la etiqueta 'Albania' columna en la posicion 0\n", "drinks.ix['Albania', 0]" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "89" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# fila en la posicion 1, columna con etiqueta 'beer_servings'\n", "drinks.ix[1, 'beer_servings']" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
beer_servingsspirit_servings
country
Albania89132
Algeria250
Andorra245138
\n", "
" ], "text/plain": [ " beer_servings spirit_servings\n", "country \n", "Albania 89 132\n", "Algeria 25 0\n", "Andorra 245 138" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Filas 'Albania' hasta 'Andorra' (inclusiva), columnas en la posicion 0 hasta 2 (exclusiva)\n", "drinks.ix['Albania':'Andorra', 0:2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__ Entonces... ¿Cuáles son las diferencias entre loc, iloc, e ix? veamos... __\n", "\n", "Usemos la vieja confiable para contestar esta pregunta, es bueno buscar preguntas en internet ya que es imposible memorizar tantos metodos... ;) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "http://stackoverflow.com/questions/31593201/pandas-iloc-vs-ix-vs-loc-explanation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Apply\n", "\n", "Podemos aplicar funciones a data series:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def alcoholics(x):\n", " if x > 10:\n", " return 'alcoholics!'\n", " else:\n", " return 'Sober people'" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
beer_servingsspirit_servingswine_servingstotal_litres_of_pure_alcoholcontinentKind of people
country
Afghanistan0000.0AsiaSober people
Albania89132544.9EuropeSober people
Algeria250140.7AfricaSober people
Andorra24513831212.4Europealcoholics!
Angola21757455.9AfricaSober people
Antigua & Barbuda102128454.9North AmericaSober people
Argentina193252218.3South AmericaSober people
Armenia21179113.8EuropeSober people
Australia2617221210.4Oceaniaalcoholics!
Austria279751919.7EuropeSober people
\n", "
" ], "text/plain": [ " beer_servings spirit_servings wine_servings \\\n", "country \n", "Afghanistan 0 0 0 \n", "Albania 89 132 54 \n", "Algeria 25 0 14 \n", "Andorra 245 138 312 \n", "Angola 217 57 45 \n", "Antigua & Barbuda 102 128 45 \n", "Argentina 193 25 221 \n", "Armenia 21 179 11 \n", "Australia 261 72 212 \n", "Austria 279 75 191 \n", "\n", " total_litres_of_pure_alcohol continent Kind of people \n", "country \n", "Afghanistan 0.0 Asia Sober people \n", "Albania 4.9 Europe Sober people \n", "Algeria 0.7 Africa Sober people \n", "Andorra 12.4 Europe alcoholics! \n", "Angola 5.9 Africa Sober people \n", "Antigua & Barbuda 4.9 North America Sober people \n", "Argentina 8.3 South America Sober people \n", "Armenia 3.8 Europe Sober people \n", "Australia 10.4 Oceania alcoholics! \n", "Austria 9.7 Europe Sober people " ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drinks['Kind of people'] = drinks['total_litres_of_pure_alcohol'].apply(alcoholics)\n", "drinks.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Creación de Dummy Variables\n", "\n", "En general: \n", "- Si tiene __\"K\" posibles valores__ para una característica categórica, sólo necesita __\"K-1\" dummy variables __ para capturar toda la información sobre esa característica. \n", "- Una convención es __eliminar la primera variable ficticia__, que define ese nivel como la \"baseline\"." ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "4 5 0 3 \n", "\n", " Name Sex Age SibSp \\\n", "0 Braund, Mr. Owen Harris male 22.0 1 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "2 Heikkinen, Miss. Laina female 26.0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", "4 Allen, Mr. William Henry male 35.0 0 \n", "\n", " Parch Ticket Fare Cabin Embarked \n", "0 0 A/5 21171 7.2500 NaN S \n", "1 0 PC 17599 71.2833 C85 C \n", "2 0 STON/O2. 3101282 7.9250 NaN S \n", "3 0 113803 53.1000 C123 S \n", "4 0 373450 8.0500 NaN S " ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leyendo la data de crimen cometidos en los EEUU\n", "titanic = pd.read_csv('../data/titanic.csv')\n", "titanic.head()" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedSex_male
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS1
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C0
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS0
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S0
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS1
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "4 5 0 3 \n", "\n", " Name Sex Age SibSp \\\n", "0 Braund, Mr. Owen Harris male 22.0 1 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "2 Heikkinen, Miss. Laina female 26.0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", "4 Allen, Mr. William Henry male 35.0 0 \n", "\n", " Parch Ticket Fare Cabin Embarked Sex_male \n", "0 0 A/5 21171 7.2500 NaN S 1 \n", "1 0 PC 17599 71.2833 C85 C 0 \n", "2 0 STON/O2. 3101282 7.9250 NaN S 0 \n", "3 0 113803 53.1000 C123 S 0 \n", "4 0 373450 8.0500 NaN S 1 " ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create the 'Sex_male' dummy variable using the 'map' method\n", "titanic['Sex_male'] = titanic.Sex.map({'female':0, 'male':1})\n", "titanic.head()" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
femalemale
001
110
210
310
401
\n", "
" ], "text/plain": [ " female male\n", "0 0 1\n", "1 1 0\n", "2 1 0\n", "3 1 0\n", "4 0 1" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.get_dummies(titanic.Sex).head()" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Sex_male
01
10
20
30
41
\n", "
" ], "text/plain": [ " Sex_male\n", "0 1\n", "1 0\n", "2 0\n", "3 0\n", "4 1" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Eliminamos la primera first dummy variable ('female') usando el metodo iloc\n", "pd.get_dummies(titanic.Sex, prefix='Sex').iloc[:, 1:].head()" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Embarked_CEmbarked_QEmbarked_S
0001
1100
2001
3001
4001
\n", "
" ], "text/plain": [ " Embarked_C Embarked_Q Embarked_S\n", "0 0 0 1\n", "1 1 0 0\n", "2 0 0 1\n", "3 0 0 1\n", "4 0 0 1" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Usando 'get_dummies' Con una característica que tiene 3 valores posibles\n", "pd.get_dummies(titanic.Embarked, prefix='Embarked').head(5)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Embarked_QEmbarked_S
001
100
201
301
401
\n", "
" ], "text/plain": [ " Embarked_Q Embarked_S\n", "0 0 1\n", "1 0 0\n", "2 0 1\n", "3 0 1\n", "4 0 1" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Eliminamos la primera dummy variable ('C')\n", "\n", "pd.get_dummies(titanic.Embarked, prefix='Embarked').iloc[:, 1:].head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cómo traducir estos valores de nuevo al valor original __'Embarked'__:\n", "* 0, 0 significa C\n", "* 1, 0 significa Q\n", "* 0, 1 significa S" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassNameAgeSibSpParchTicketFareCabinSex_femaleSex_maleEmbarked_CEmbarked_QEmbarked_S
0103Braund, Mr. Owen Harris22.010A/5 211717.2500NaN01001
1211Cumings, Mrs. John Bradley (Florence Briggs Th...38.010PC 1759971.2833C8510100
2313Heikkinen, Miss. Laina26.000STON/O2. 31012827.9250NaN10001
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01011380353.1000C12310001
4503Allen, Mr. William Henry35.0003734508.0500NaN01001
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "4 5 0 3 \n", "\n", " Name Age SibSp Parch \\\n", "0 Braund, Mr. Owen Harris 22.0 1 0 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... 38.0 1 0 \n", "2 Heikkinen, Miss. Laina 26.0 0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) 35.0 1 0 \n", "4 Allen, Mr. William Henry 35.0 0 0 \n", "\n", " Ticket Fare Cabin Sex_female Sex_male Embarked_C \\\n", "0 A/5 21171 7.2500 NaN 0 1 0 \n", "1 PC 17599 71.2833 C85 1 0 1 \n", "2 STON/O2. 3101282 7.9250 NaN 1 0 0 \n", "3 113803 53.1000 C123 1 0 0 \n", "4 373450 8.0500 NaN 0 1 0 \n", "\n", " Embarked_Q Embarked_S \n", "0 0 1 \n", "1 0 0 \n", "2 0 1 \n", "3 0 1 \n", "4 0 1 " ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Pasa el DataFrame a 'get_dummies' y especifica qué columnas a dummy (descarta las columnas originales)\n", "\n", "titanic = pd.read_csv('../data/titanic.csv')\n", "pd.get_dummies(titanic, columns=['Sex', 'Embarked']).head()" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassNameAgeSibSpParchTicketFareCabinSex_maleEmbarked_QEmbarked_S
0103Braund, Mr. Owen Harris22.010A/5 211717.2500NaN101
1211Cumings, Mrs. John Bradley (Florence Briggs Th...38.010PC 1759971.2833C85000
2313Heikkinen, Miss. Laina26.000STON/O2. 31012827.9250NaN001
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)35.01011380353.1000C123001
4503Allen, Mr. William Henry35.0003734508.0500NaN101
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "4 5 0 3 \n", "\n", " Name Age SibSp Parch \\\n", "0 Braund, Mr. Owen Harris 22.0 1 0 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... 38.0 1 0 \n", "2 Heikkinen, Miss. Laina 26.0 0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) 35.0 1 0 \n", "4 Allen, Mr. William Henry 35.0 0 0 \n", "\n", " Ticket Fare Cabin Sex_male Embarked_Q Embarked_S \n", "0 A/5 21171 7.2500 NaN 1 0 1 \n", "1 PC 17599 71.2833 C85 0 0 0 \n", "2 STON/O2. 3101282 7.9250 NaN 0 0 1 \n", "3 113803 53.1000 C123 0 0 1 \n", "4 373450 8.0500 NaN 1 0 1 " ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Utiliza el parámetro 'drop_first' (nuevo en pandas 0.18) para eliminar la primera variable dummy para cada característica\n", "\n", "pd.get_dummies(titanic, columns=['Sex', 'Embarked'], drop_first=True).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ejemplo\n", "\n", "¿Son los niños más altos que las niñas en promedio a los X años? X puede ser 2 años, 9 años y 18 años de edad" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Boys_2Boys_9Boys_18Girls_2Girls_9Girls_18
2287.1136.8182.494.0136.1175.6
2391.4140.6185.889.7135.8167.2
2489.7138.6180.786.4131.9164.0
2592.2140.0178.786.4130.9161.6
26NaNNaNNaN81.8126.3153.6
27NaNNaNNaN91.4135.5173.5
28NaNNaNNaN88.6134.0166.2
29NaNNaNNaN86.4138.2162.8
30NaNNaNNaN94.0142.0168.6
31NaNNaNNaN89.2140.8169.2
\n", "
" ], "text/plain": [ " Boys_2 Boys_9 Boys_18 Girls_2 Girls_9 Girls_18\n", "22 87.1 136.8 182.4 94.0 136.1 175.6\n", "23 91.4 140.6 185.8 89.7 135.8 167.2\n", "24 89.7 138.6 180.7 86.4 131.9 164.0\n", "25 92.2 140.0 178.7 86.4 130.9 161.6\n", "26 NaN NaN NaN 81.8 126.3 153.6\n", "27 NaN NaN NaN 91.4 135.5 173.5\n", "28 NaN NaN NaN 88.6 134.0 166.2\n", "29 NaN NaN NaN 86.4 138.2 162.8\n", "30 NaN NaN NaN 94.0 142.0 168.6\n", "31 NaN NaN NaN 89.2 140.8 169.2" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "niños = pd.read_csv('../data/children_heights.txt',sep='\\t')\n", "niños.tail(10)" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Boys_2Boys_9Boys_18Girls_2Girls_9Girls_18
count26.00000026.00000026.00000032.00000032.00000032.000000
mean88.400000136.546154180.03846287.465625135.275000166.765625
std3.0359185.3160316.3961913.5065485.6868846.371540
min81.300000125.400000169.40000080.900000121.400000153.600000
25%86.800000133.225000175.20000085.850000133.175000163.525000
50%89.000000136.250000178.85000087.850000136.300000167.000000
75%90.900000139.775000183.65000089.325000139.400000170.300000
max92.200000146.000000195.10000094.000000144.800000181.100000
\n", "
" ], "text/plain": [ " Boys_2 Boys_9 Boys_18 Girls_2 Girls_9 Girls_18\n", "count 26.000000 26.000000 26.000000 32.000000 32.000000 32.000000\n", "mean 88.400000 136.546154 180.038462 87.465625 135.275000 166.765625\n", "std 3.035918 5.316031 6.396191 3.506548 5.686884 6.371540\n", "min 81.300000 125.400000 169.400000 80.900000 121.400000 153.600000\n", "25% 86.800000 133.225000 175.200000 85.850000 133.175000 163.525000\n", "50% 89.000000 136.250000 178.850000 87.850000 136.300000 167.000000\n", "75% 90.900000 139.775000 183.650000 89.325000 139.400000 170.300000\n", "max 92.200000 146.000000 195.100000 94.000000 144.800000 181.100000" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Resumen de estadísticas\n", "niños.describe()" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nJkl335nkzuWWBQAnzhOS/HZ3v3V0IQCszn6mLH5skncm+eGqen1V/WBV3W/JdQHASfPUJD8+uggA\nVqu6+9ILVG0muSHJY7r7xqp6bpL3dPe3XbDcqSSnkmRjY+NTX/SiFy2p5MPZ3t7ONddcM7qMldLz\n9J20fpM16vncuZU91HaSPTu+9tojrfdxj3vcTd29eaSVsBDzjwP8XpJP7u4/2OP2tR5jL2Vtjtkj\nmkofyZr2csjX1Iu+Ph7GEV9Tj2It98khTaWXRfSx33F2P4Hso5Lc0N3Xz3/+rCTP6u7Pu9h9Njc3\n+7Wvfe3BKl6y2WyWra2t0WWslJ6n76T1m6xRz2fPruyhZjs72bpijwkNn//5R1pvVQlka6KqnpLk\nH3f351xu2XUcYy9lbY7ZI5pKH8ma9nLI19SLvj4exhFfU49iLffJIU2ll0X0sd9x9rLP4O5+R5K3\nVdXD5796QpI3HKk6AOB8XxzTFQFOpP1eZfFpSV4wn1Lx5iRftbySAODkmH8u+7OT/KPRtQCwevsK\nZN19cxLTWgBgwbr7fUk+cnQdAIyxoEm3AAAAHJRABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAA\nMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhA\nBgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAAMIhABgAA\nMIhABgAAMIhABgAAMIhABgAAMIhABgADVdUDquolVfXGqrqtqj59dE0ArM5VowsAgBPuuUle0d1f\nVFX3SnLf0QUBsDoCGQAMUlXXJnlskq9Mku6+M8mdI2sCYLVMWQSAcT42yTuT/HBVvb6qfrCq7je6\nKABWxxkyABjnqiR/LcnTuvvGqnpukmcl+bbzF6qqU0lOJcnGxkZms9mq6zy07e3tY1XvxUylj2SP\nXs6dG1bLUW0nme3sLGZlA/fvpJ9fx9Qq+xDIAGCctyd5e3ffOP/5JdkNZB+iu08nOZ0km5ubvbW1\ntbICj2o2m+U41XsxU+kj2aOXs2eH1XJUs52dbF2xoAlfA/fvpJ9fx9Qq+9hXIKuqtyR5b5IPJrmr\nuzeXWRQAnATd/Y6qeltVPby735TkCUneMLouAFbnIGfIHtfd71paJQBwMj0tyQvmV1h8c5KvGlwP\n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\n5JiaSi/39LEOx8a5c0e6+3aS2Zkzi6lloKUc8xchkAHAQFV1dXbD2Au6+6V7LdPdp5OcTpLNzc3e\n2to6/AOePXv4+x7CbGcnW1dcMCHnKPUPMpvNcqTtvpcV74u77blPjqmp9HJPH+twbBzxeTmZfXLN\nNYs/5i/i+G8tADimqqqSPC/Jbd39vaPrAWD1BDIAGOcxSb4syeOr6ub515NGFwXA6piyCACDdPdr\nktToOgAYxxkyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQy\nAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACAQQQyAACA\nQQQyAACAQQQyAACAQQQyAACAQQQyAACAQS4byKrqh6rqjqq6ZRUFAQAAnBT7OUP2I0meuOQ6AAAA\nTpzLBrLufnWSP1pBLQAAACeKz5ABAAAMctWiVlRVp5KcSpKNjY3MZrPDr2xnZzFFnWc7yewg6z1K\n/YtyxO1w4J73csy2w0J6PkZOWr+Jnj/EOhyfAMCRLCyQdffpJKeTZHNzs7e2tg6/srNnF1PUeWY7\nO9m64gAnBI9S/6IccTscuOe9HLPtsJCej5GT1m+i5w+xDscnAHAkJ+t/NQCwRlzJGID9XPb+x5P8\napKHV9Xbq+prll8WAJwIPxJXMgY40S47ZbG7v3gVhQDASdPdr66q60fXAcA4piwCAAAMsrCLegAA\ny7HuVzK+lD2vEnrmzEprWITtJLNjWPdepnS12qn0ck8f63D13HW4yvca2N7ePtpr7QEIZACw5tb9\nSsaXMpUro06lj0Qv6+iePtbh6rnrcJXvNTC75poc6bX2AI7/1gIAADimBDIAGMSVjAEwZREABnEl\nYwCcIQMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhE\nIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMA\nABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhEIAMAABhk\nX4Gsqp5YVW+qqt+qqmctuygAOCmMsQAn22UDWVVdmeQ/J/ncJJ+U5Iur6pOWXRgATJ0xFoD9nCF7\ndJLf6u43d/edSV6U5CnLLQsATgRjLMAJt59A9uAkbzvv57fPfwcAHI0xFuCEu2pRK6qqU0lOzX/c\nrqo3LWrdC3JdkneNLmLF9Dx9J63fRM+L9LAlrJMlOAZj7KVM5ZidSh+JXtbRVPpIptPLIvrY1zi7\nn0B2e5KHnvfzQ+a/+xDdfTrJ6X2VNkBVvba7N0fXsUp6nr6T1m+iZyZnEmPspUzl+TuVPhK9rKOp\n9JFMp5dV9rGfKYv/O8knVNXHVtW9kjw1yU8vtywAOBGMsQAn3GXPkHX3XVX1T5L8ryRXJvmh7r51\n6ZUBwMQZYwHY12fIuvtnkvzMkmtZtmM51eOI9Dx9J63fRM9MzETG2EuZyvN3Kn0kellHU+kjmU4v\nK+ujuntVjwUAAMB59vMZMgAAAJZgsoGsqr6hqm6tqluq6ser6j5V9ZyqemNV/UZVvayqHjC6zkXZ\nq9/zbntmVXVVXTeyxkW7WM9V9bT5fr61qp49us5Fusjz+pFVdUNV3VxVr62qR4+uc1Gq6unzXm+t\nqmfMf/cRVfXKqvrN+b9/YXSdi3SRnif72sW0TGnsncq4OqWxcipj4JTGtqmMWXv1cd5tSz/eJxnI\nqurBSf5pks3ufkR2Pyj91CSvTPKI7v6rSf5vkm8eV+XiXKLfVNVDk3xOkt8dV+HiXaznqnpckqck\n+ZTu/uQk/2FgmQt1if387CTf0d2PTPKv5j8fe1X1iCT/MMmjk3xKkidX1ccneVaSX+juT0jyC/Of\nJ+ESPU/ytYtpmdLYO5VxdUpj5VTGwCmNbVMZsy7Rx8qO90kGsrmrknxYVV2V5L5Jfq+7f66775rf\nfkN2/97LVPy5fue//74k35hkih8W3Kvnr0vyPd39/iTp7jsG1rcMe/XcST58fvu1+f/7/rj7y0lu\n7O4/mR+3v5Tk72b3PxHPny/z/CRfOKi+Zdiz54m/djEtUxp7pzKuTmmsnMIYOKWxbSpj1sX2SbKi\n432Sgay7b8/uuz2/m+T3k5zr7p+7YLGvTvKzq65tGS7Wb1U9Jcnt3f3rQwtcgkvs409M8llVdWNV\n/VJV/fWRdS7SJXp+RpLnVNXb5rev9TtRB3BLdvflR1bVfZM8Kbt/QHeju39/vsw7kmyMKnAJLtbz\n+Sbz2sW0TGnsncq4OqWxckJj4JTGtqmMWXv2scrjfZKBbD7v9ilJPjbJX0xyv6r60vNu/5dJ7kry\ngjEVLtZF+v3yJN+S3dP3k3OJfXxVko9I8mlJ/kWSF1dVDSt0gS7R89cl+YbufmiSb0jyvHFVLk53\n35bk3yf5uSSvSHJzkg9esEzn+LxLfVmX63lqr11My5TG3qmMq1MaK6cyBk5pbJvKmHWRPu6dFR7v\nkwxkSf5Wkt/p7nd29weSvDTJZyRJVX1lkicn+ZKezjX/9+r3q7L7ovXrVfWW7J4ufl1VfdS4Mhfq\nYvv47Ule2rt+LclOkrX/0PU+Xaznr5h/nyQ/kd050JPQ3c/r7k/t7scm+ePszkX/g6r66CSZ/3tc\nptrsy0V6nuprF9MypbF3KuPqlMbKyYyBUxrbpjJm7dHHrVnh8T7VQPa7ST6tqu47f8fnCUluq6on\nZnce6Bd0958MrXCx9ur3pd39oO6+vruvz+6L71/r7neMLHSB9tzHSX4qyeOSpKo+Mcm9krxrWJWL\ndbGefy/J35wv8/gkvzmovoWrqgfN//2Y7M7nfmGSn87uAJz5v2fGVLcce/U84dcupmVKY+9UxtUp\njZWTGQOnNLZNZczao4/nr/J4v2oZKx2tu2+sqpckeV12T5W+Prt/bfvW7J6CfOX8zPwN3f21wwpd\nkEv0O1mX6LmT/FBV3ZLkziRfcRzemdmPS/T8+iTPnX/I+c+SnBpX5cL9ZFV9ZJIPJPnH3f3uqvqe\n7E6v+Zokb03y94dWuHh79fyfMsHXLqZlSmPvVMbVKY2VExsDpzS2TWXM+nN9rPLBa82PPwAAgMma\n6pRFAACAtSeQAQAADCKQAQAADCKQAQAADCKQAQAADCKQAQAADCKQAQAADCKQAQAADPL/AMg6ryKK\nyV/WAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_hist(df, columns):\n", " df[columns].hist(color='r', alpha=0.3, normed=False)\n", "\n", "plot_hist(niños,['Boys_2', 'Girls_2'])" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAE/CAYAAADVKysfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+UZHdZ5/H3J5PwKwMT18AkJoFBjWhgXQm9GGHVHlgQ\nImH0LOdscgRWdM9sNCCuKL9UEF08urAiGGVOVhCyIHNYBMlkE4EVGsJqgkkIISFwzoiJmRgMBBlo\nEoHQz/5RN9jpdHVVd1XX/U76/TqnTqru/fatp5+5Vd/76bp1k6pCkiRJktSmo/ouQJIkSZI0nKFN\nkiRJkhpmaJMkSZKkhhnaJEmSJKlhhjZJkiRJapihTZIkSZIaZmiTJEmSpIYZ2rSlJbkxyZ1JFpP8\nU5L/k+SUHur4viQfTHI4ycEkPznrGiRJmrUk+5L8+hrr55McmmVNUosMbRKcVVXbgROBfwT+YJZP\nnuRo4L3AxcC/AvYCb0vyPbOsQ5KkzZDk7CRXJPlqktu6+z+fJFV1blX91iY+9/2TvC7JP3R/nP2j\nJMds1vNJm8XQJnWq6p+BdwGnASTZkeTCJJ9PclOSX0tyVJL7Jflikn99988meViSO5I8NMnxSS5O\n8qVu3GVJ1nqtfS/wHcDrquqbVfVB4P8Bz9nEX1eSpE2X5EXA64HXACcAO4FzgScC9xvxs0dPoYSX\nAnPAY4DvAU4Hfm0K25VmytAmdZI8CPiPwOXdoj8AdgDfCfwo8FzgeVX1dWA/8OxlP34O8JdV9Xng\nRcAh4KEMJqeXA7XechhMMJIkHZGS7AB+E/j5qnpXVX2lBj5eVT9VVV9L8pYk/60bP5/kUJKXJPkc\n8CerbPMlSW5J8pUkn0ny5BFlnAX8QVV9sZuj3wD8zJR/VWnTGdok+PMkXwIOA08BXpNkG3A28LJu\nkrkR+B/8y6dfbwXOSZLu8XOA/9Xd/waDUy0fUVXfqKrLqmqt0PYZ4DbgV5Ick+SpDELig6b3K0qS\nNHM/BNyfwVcAxnUCg68KPILB1wW+JcmjgOcD/7aqHgz8GHDjOmsKcHIXKKUjhqFNgp+oquOABzCY\nDD4MnAwcA9y0bNxNwEkAVXUFcAcwn+R7ge8GLurGvQY4CLw/yWeTvHStJ6+qbwA/Afw48DkGn9S9\nk8GndZIkHamOB75QVXfdvSDJX3VfH7gzyY+s8jNLwCur6mtVdeeKdd9kEAJPS3JMVd1YVX87ooa/\nAF7YfX3hBOAXuuX+YVRHFEOb1Om+T/ZuBpPCGQw+MXvEsiEPB25Z9vitDE6RfA7wru47cXSfzL2o\nqr4TeCbwS6NO36iqa6vqR6vq26vqxxickvmxaf1ukiT14Hbg+OXfTauqJ3R/KL2d1Y9DP3/3fLpS\nVR0EfhH4DeC2JPuTfMeIGl4NfBy4Bvgr4M8ZzO//uM7fReqVoU3qZGAP8G3AdQw+7Xp1kgcneQTw\nS8Dblv3I24CfZBDcLly2nWck+e7u1MnDDELg0ojn/v4kD0jyoCS/zOD0yrdM77eTJGnm/hr4GrBn\nHT+z5nfAq+pPq+rfMfijagG/O2L8nVX1/Ko6qftj6u3AVVW15rwstWYaV+WRjnQHknyTwZv/TcB/\nqqrrk7yAwcVIPgv8M/A/gTff/UNVdXOSqxmcGnnZsu2dCpzP4EIk/wT8UVV9aEQNzwH+M4NTMi8D\nnlJVX5vGLydJUh+q6ktJXgX8UfeHzPcBXwW+Hzh2vdvrvtN2EoMrLP8zcCewbcTPnMRgfr8V+EHg\n14GfXe9zS30ztGlLq6pda6z7J+55hcjV/D1w+fILjVTV64DXrbOOXwF+ZT0/I0lS66rqvye5BXgx\ng7NSvsrgj6EvYXC64k+vY3P3B34H+D4Gpzj+FSsuVrKK7+qe92HAzcBLq+r963hOqQlZ+6J2koZJ\nsovBOfKPraq/67caSZIk3Vf5nTZpA5L8FoPvvb1mnMCW5OFJFofcHr75FUuSJOlI5SdtkiRJOmIl\nuRT44VVW/XZV/fas65E2g6FNkiRJkhrm6ZGSJEmS1LDerh55/PHH165du0aO++pXv8qxx677qrBa\nxh5Oxv5Nxv5Nru8eXnXVVV+oqof2VoDWbdw5dqvo+zXUKvsynL0Zzt6sbqN9GXeO7S207dq1iyuv\nvHLkuIWFBebn5ze/oPswezgZ+zcZ+ze5vnuY5KbenlwbMu4cu1X0/RpqlX0Zzt4MZ29Wt9G+jDvH\nenqkJEmSJDXM0CZJkiRJDTO0SZIkSVLDDG2SJEmS1DBDmyRJkiQ1zNAmSZIkSQ0ztEmSJElSw8YO\nbUm2Jfl4kotXWZckb0hyMMm1SU6fbpmSJG1tSf5rkuuTXJfkHUke0HdNkqTZWM8nbS8Ebhiy7unA\nqd1tL/DGCeuSJEmdJCcBvwDMVdVjgG3A2f1WJUmalbFCW5KTgR8H/njIkD3AhTVwOXBckhOnVKMk\nSYKjgQcmORp4EPAPPdcjSZqRcT9p+33gxcDSkPUnATcve3yoWyZJkiZUVbcArwX+HrgVOFxV7++3\nKknSrBw9akCSZwC3VdVVSeYnebIkexmcPsnOnTtZWFgY+TOLi4tjjdNwM+nh4cObu/1x7NixKZtd\nV/9a6EMLlv1bbOnX8JT2h0Vg4b3v3fgGNum1odlJ8m0Mzmp5JPAl4H8neXZVvW3ZmHXPsVvFln4f\nWoN9Ga7p3vR8rLEI7famR5u9z4wMbcATgWcmORN4APCQJG+rqmcvG3MLcMqyxyd3y+6hqi4ALgCY\nm5ur+fn5kU++sLDAOOM03Ex6eODA5m5/HJv0O66rfy30oQXL+rWlX8NT2h8WlpaYP2qCi/1u1f7f\nt/x74O+q6vMASd4NPAH4VmjbyBy7VWzp96E12Jfhmu5Nz8caC0tL7famR5u9z4w8Cqiql1XVyVW1\ni8GXnj+4IrABXAQ8t7uK5BkMTtu4dfrlSpK0Jf09cEaSByUJ8GSGXxxMknQfM84nbatKci5AVe0D\nLgHOBA4CdwDPm0p1kiSJqroiybuAq4G7gI/TfaomSbrvW1doq6oFYKG7v2/Z8gLOm2ZhkiTpX1TV\nK4FX9l2HJGn2JviShCRJkiRpsxnaJEmSJKlhhjZJkiRJapihTZIkSZIaZmiTJEmSpIYZ2iRJkiSp\nYYY2SZIkSWqYoU2SJEmSGmZokyRJkqSGGdokSZIkqWGGNkmSJElqmKFNkiRJkhpmaJMkSZKkhhna\nJEmSJKlhhjZJkiRJapihTZIkSZIaZmiTJEmSpIYZ2iRJkiSpYYY2SZIkSWqYoU2SJEmSGmZokyRJ\nkqSGGdokSZIkqWGGNkmSJElq2MjQluQBST6W5BNJrk/yqlXGzCc5nOSa7vaKzSlXkqStJ8mjls2x\n1yT5cpJf7LsuSdJsHD3GmK8BT6qqxSTHAB9NcmlVXb5i3GVV9YzplyhJ0tZWVZ8BfgAgyTbgFuA9\nvRYlSZqZkaGtqgpY7B4e091qM4uSJElDPRn426q6qe9CJEmzMdZ32pJsS3INcBvwgaq6YpVhT0hy\nbZJLkzx6qlVKkqS7nQ28o+8iJEmzk8EHaWMOTo5jcDrGC6rqumXLHwIsdadQngm8vqpOXeXn9wJ7\nAXbu3Pm4/fv3j3zOxcVFtm/fPnaNureZ9PDw4c3d/jh27NiUza6rfy30oQXL/i229Gt4SvvDIjBR\nByd8bezevfuqqpqbaCOaiiT3A/4BeHRV/eOKdeueY7eKLf0+tAb7MlzTven5WGMR2L5Jx1xHso3u\nM+POsesKbQDdRUbuqKrXrjHmRmCuqr4wbMzc3FxdeeWVI59vYWGB+fn5ddWoe5pJDw8c2Nztj+Os\nszZls+vqXwt9aMGyf4st/Rqe0v6wsLTE/FETXOx3wtdGEkNbI5LsAc6rqqeuNW7cOXar2NLvQ2uw\nL8M13ZuejzUWlpaY37On1xpatNF9Ztw5dpyrRz60+4SNJA8EngJ8esWYE5Kku//4bru3r7tqSZK0\nlnPw1EhJ2nLGuXrkicBbu6tVHQW8s6ouTnIuQFXtA54F/FySu4A7gbNrvR/hSZKkoZIcy+APp/+l\n71okSbM1ztUjrwUeu8ryfcvunw+cP93SJEnS3arqq8C3912HJGn2JviShCRJkiRpsxnaJEmSJKlh\nhjZJkiRJapihTZIkSZIaZmiTJEmSpIYZ2iRJkiSpYYY2SZIkSWqYoU2SJEmSGmZokyRJkqSGGdok\nSZIkqWGGNkmSJElqmKFNkiRJkhpmaJMkSZKkhhnaJEmSJKlhhjZJkiRJapihTZIkSZIaZmiTJEmS\npIYZ2iRJkiSpYYY2SZIkSWqYoU2SJEmSGmZokyRJkqSGGdokSZIkqWGGNkmSJElqmKFNkiRJkho2\nMrQleUCSjyX5RJLrk7xqlTFJ8oYkB5Ncm+T0zSlXkqStKclxSd6V5NNJbkjyQ33XJEmajaPHGPM1\n4ElVtZjkGOCjSS6tqsuXjXk6cGp3+0Hgjd1/JUnSdLwe+IuqelaS+wEP6rsgSdJsjPykrQYWu4fH\ndLdaMWwPcGE39nLguCQnTrdUSZK2piQ7gB8B3gRQVV+vqi/1W5UkaVbG+k5bkm1JrgFuAz5QVVes\nGHIScPOyx4e6ZZIkaXKPBD4P/EmSjyf54yTH9l2UJGk2UrXyQ7M1BifHAe8BXlBV1y1bfjHwO1X1\n0e7xXwIvqaorV/z8XmAvwM6dOx+3f//+kc+5uLjI9u3bx65R9zaTHh4+vLnb79Ei4B64cb31b8eO\nPp71nqb0upi4hxP2Yvfu3VdV1dxEG9FEkswBlwNPrKorkrwe+HJV/fqyMeueY7cKjyVWZ1+GG9qb\n+/DxzrgWge0tzLGN2ejradw5dpzvtH1LVX0pyYeApwHXLVt1C3DKsscnd8tW/vwFwAUAc3NzNT8/\nP/I5FxYWGGechptJDw8c2Nzt92hhaYn5o7zQ6kb11r8W3jem9LqYuIct9EKTOgQcWnamy7uAly4f\nsJE5dqvwWGJ19mW4ob25Dx/vjGthacn9ZhWb/Xoa5+qRD+0+YSPJA4GnAJ9eMewi4LndVSTPAA5X\n1a1Tr1aSpC2oqj4H3JzkUd2iJwOf6rEkSdIMjfNJ24nAW5NsYxDy3llVFyc5F6Cq9gGXAGcCB4E7\ngOdtUr2SJG1VLwDe3l058rM410rSljEytFXVtcBjV1m+b9n9As6bbmmSJOluVXUN4HcLJWkL8os6\nkiRJktQwQ5skSZIkNczQJkmSJEkNM7RJkiRJUsMMbZIkSZLUMEObJEmSJDXM0CZJkiRJDTO0SZIk\nSVLDDG2SJEmS1DBDmyRJkiQ1zNAmSZIkSQ0ztEmSJElSwwxtkiRJktQwQ5skSZIkNczQJkmSJEkN\nM7RJkiRJUsMMbZIkSZLUMEObJEmSJDXM0CZJkiRJDTO0SZIkSVLDDG2SJEmS1DBDmyRJkiQ1zNAm\nSZIkSQ0bGdqSnJLkQ0k+leT6JC9cZcx8ksNJrulur9icciVJ2pqS3Jjkk908e2Xf9UiSZufoMcbc\nBbyoqq5O8mDgqiQfqKpPrRh3WVU9Y/olSpKkzu6q+kLfRUiSZmvkJ21VdWtVXd3d/wpwA3DSZhcm\nSZIkSVrnd9qS7AIeC1yxyuonJLk2yaVJHj2F2iRJ0r8o4P8muSrJ3r6LkSTNTqpqvIHJduDDwKur\n6t0r1j0EWKqqxSRnAq+vqlNX2cZeYC/Azp07H7d///6Rz7u4uMj27dvHqlGrm0kPDx/e3O33aBFw\nD9y43vq3Y0cfz3pPU3pdTNzDCXuxe/fuq6pqbqKNaGJJTqqqW5I8DPgA8IKq+siy9eueY7cKjyVW\nd8T1ZYbHGs79wy0C21uYYxuz0dfTuHPsWKEtyTHAxcD7qur3xhh/IzC31nn3c3NzdeWVo79HvbCw\nwPz8/MhxGm4mPTxwYHO336OFpSXmj/JCqxvVW//OOmv2z7nSlF4XE/dwwl4kMbQ1JslvAItV9drV\n1o87x24VHkus7ojrywyPNZz7h1tYWmJ+z56+y2jORl9P486x41w9MsCbgBuGBbYkJ3TjSPL4bru3\nr69kSZK0miTHdhcDI8mxwFOB6/qtSpI0K+NcPfKJwHOATya5plv2cuDhAFW1D3gW8HNJ7gLuBM6u\ncc+7lCRJo+wE3tP9ffRo4E+r6i/6LUmSNCsjQ1tVfRTIiDHnA+dPqyhJkvQvquqzwL/puw5JUj88\nWVeSJEmSGmZokyRJkqSGGdokSZIkqWGGNkmSJElqmKFNkiRJkhpmaJMkSZKkhhnaJEmSJKlhhjZJ\nkiRJapihTZIkSZIaZmiTJEmSpIYZ2iRJkiSpYYY2SZIkSWqYoU2SJEmSGmZokyRJkqSGGdokSZIk\nqWGGNkmSJElqmKFNkiRJkhpmaJMkSZKkhhnaJEmSJKlhhjZJkiRJapihTZIkSZIaZmiTJEmSpIYZ\n2iRJkiSpYYY2SZIkSWrYyNCW5JQkH0ryqSTXJ3nhKmOS5A1JDia5Nsnpm1OuJElbU5JtST6e5OK+\na5EkzdY4n7TdBbyoqk4DzgDOS3LaijFPB07tbnuBN061SkmS9ELghr6LkCTN3sjQVlW3VtXV3f2v\nMJgwTloxbA9wYQ1cDhyX5MSpVytJ0haU5GTgx4E/7rsWSdLsHb2ewUl2AY8Frlix6iTg5mWPD3XL\nbl3x83sZfBLHzp07WVhYGPmci4uLY43rzeHDfVcAO3asuXomPVxa2tzt92gRWLgP/36brbf+tfC+\nMaXfe+IettALTer3gRcDDx42YCNz7FbR/LFET464vsxwLnHuH24Rjqz9ZkY2+/U0dmhLsh34M+AX\nq+rLG3myqroAuABgbm6u5ufnR/7MwsIC44zrzYEDfVcAI/ozkx620IdNsrC0xPxRXrNno3rrXwvv\nG1N6XUzcwxZ6oQ1L8gzgtqq6Ksn8sHEbmWO3iuaPJXpyxPVlhscazv3DLSwtHVn7zYxs9utprL0x\nyTEMAtvbq+rdqwy5BThl2eOTu2WSJGkyTwSemeRGYD/wpCRv67ckSdIsjXP1yABvAm6oqt8bMuwi\n4LndVSTPAA5X1a1DxkqSpDFV1cuq6uSq2gWcDXywqp7dc1mSpBka5/TIJwLPAT6Z5Jpu2cuBhwNU\n1T7gEuBM4CBwB/C86ZcqSZIkSVvPyNBWVR8FMmJMAedNqyhJknRvVbUALPRchiRpxvyGpSRJkiQ1\nzNAmSZIkSQ0ztEmSJElSwwxtkiRJktQwQ5skSZIkNczQJkmSJEkNM7RJkiRJUsMMbZIkSZLUMEOb\nJEmSJDXM0CZJkiRJDTO0SZIkSVLDDG2SJEmS1DBDmyRJkiQ1zNAmSZIkSQ0ztEmSJElSwwxtkiRJ\nktQwQ5skSZIkNczQJkmSJEkNM7RJkiRJUsMMbZIkSZLUMEObJEmSJDXM0CZJkiRJDTO0SZIkSVLD\nRoa2JG9OcluS64asn09yOMk13e0V0y9TkqStK8kDknwsySeSXJ/kVX3XJEmanaPHGPMW4HzgwjXG\nXFZVz5hKRZIkaaWvAU+qqsUkxwAfTXJpVV3ed2GSpM038pO2qvoI8MUZ1CJJklZRA4vdw2O6W/VY\nkiRphqb1nbYnJLk2yaVJHj2lbUqSpE6SbUmuAW4DPlBVV/RdkyRpNlI1+g91SXYBF1fVY1ZZ9xBg\nqTtl40zg9VV16pDt7AX2AuzcufNx+/fvH/nci4uLbN++feS43hw+3HcFsGPHmqtn0sMW+rBJFoGG\n98Dm9da/Ea+LmZjS62LiHk7Yi927d19VVXMTbURTk+Q44D3AC6rqumXL1z3HbhXNH0v05IjrywyP\nNZz7h2uqNy3M9Z2Nvp7GnWMnDm2rjL0RmKuqL6w1bm5urq688sqRz72wsMD8/PzIcb05cKDvCuCs\ns9ZcPZMettCHTbKwtMT8UV5odaN669+I18VMTOl1MXEPJ+xFEkNbY7qLft1RVa9dbf24c+xW0fyx\nRE+OuL7M8FjDuX+4pnrTwlzf2ejradw5duKOJzkhSbr7j++2efuk25UkSQNJHtp9wkaSBwJPAT7d\nb1WSpFkZefXIJO8A5oHjkxwCXsngC9BU1T7gWcDPJbkLuBM4u8b5+E6SJI3rROCtSbYx+OPoO6vq\n4p5rkiTNyMjQVlXnjFh/PoP/JYAkSdoEVXUt8Ni+65Ak9aORE1IlSZIkSasxtEmSJElSwwxtkiRJ\nktQwQ5skSZIkNczQJkmSJEkNM7RJkiRJUsMMbZIkSZLUMEObJEmSJDXM0CZJkiRJDTO0SZIkSVLD\nDG2SJEmS1DBDmyRJkiQ1zNAmSZIkSQ0ztEmSJElSwwxtkiRJktQwQ5skSZIkNczQJkmSJEkNM7RJ\nkiRJUsMMbZIkSZLUMEObJEmSJDXM0CZJkiRJDTO0SZIkSVLDDG2SJEmS1LCRoS3Jm5PcluS6IeuT\n5A1JDia5Nsnp0y9TkqStK8kpST6U5FNJrk/ywr5rkiTNzjiftL0FeNoa658OnNrd9gJvnLwsSZK0\nzF3Ai6rqNOAM4Lwkp/VckyRpRkaGtqr6CPDFNYbsAS6sgcuB45KcOK0CJUna6qrq1qq6urv/FeAG\n4KR+q5Ikzco0vtN2EnDzsseHcCKRJGlTJNkFPBa4ot9KJEmzkqoaPWgwQVxcVY9ZZd3FwO9U1Ue7\nx38JvKSqrlxl7F4Gp1Cyc+fOx+3fv3/kcy8uLrJ9+/bVVx4+PPLnBYvAkA5qDPZvMr31b8eOPp71\nnqb0HjVxDyfsxe7du6+qqrmJNqKpSLId+DDw6qp694p1655j19TCHDul1/GaxxJHgk36t3B+G87e\nDGdvVujepzb6PjPuHHv0+iu7l1uAU5Y9Prlbdi9VdQFwAcDc3FzNz8+P3PjCwgJDxx04sK5Ct6qF\npSXmj/JCoRtl/ybTW//GeH/ZdFN6j5q4hy30QhNLcgzwZ8DbVwY22Ngcu6YW5tgp7btrHkscCTbp\n38L5bTh7M5y9WaF7b9ns95lpdPwi4LndVSTPAA5X1a1T2K4kSWJwpWbgTcANVfV7fdcjSZqtkZ+0\nJXkHMA8cn+QQ8ErgGICq2gdcApwJHATuAJ63WcVKkrRFPRF4DvDJJNd0y15eVZf0WJMkaUZGhraq\nOmfE+gLOm1pFkiTpHrrvjafvOiRJ/fCEVEmSJElqmKFNkiRJkhpmaJMkSZKkhhnaJEmSJKlhhjZJ\nkiRJapihTZIkSZIaZmiTJEmSpIYZ2iRJkiSpYYY2SZIkSWqYoU2SJEmSGmZokyRJkqSGGdokSZIk\nqWGGNkmSJElqmKFNkiRJkhpmaJMkSZKkhhnaJEmSJKlhhjZJkiRJapihTZIkSZIaZmiTJEmSpIYZ\n2iRJkiSpYYY2SZIkSWqYoU2SJEmSGmZokyRJkqSGGdokSZIkqWFjhbYkT0vymSQHk7x0lfXzSQ4n\nuaa7vWL6pUqStDUleXOS25Jc13ctkqTZGxnakmwD/hB4OnAacE6S01YZellV/UB3+80p1ylJ0lb2\nFuBpfRchSerHOJ+0PR44WFWfraqvA/uBPZtbliRJultVfQT4Yt91SJL6cfQYY04Cbl72+BDwg6uM\ne0KSa4FbgF+uqutXDkiyF9gLsHPnThYWFkY++eLi4vBxS0sjf16wCCzYqw2zf5PprX9jvL9suin9\n3hP3sIVeaNNtZI5dUwvve+9971Q2swgsTGlb9yXOb8PZm+HszQrde+2amWUKxglt47gaeHhVLSY5\nE/hz4NSVg6rqAuACgLm5uZqfnx+54YWFBYaOO3BgwwVvJQtLS8wf5TVnNsr+Taa3/o3x/rLppvQe\nNXEPW+iFNt1G5tg13YfmWN/HV2dfhrM3w9mbFbr32jUzyxSM0/FbgFOWPT65W/YtVfXlqlrs7l8C\nHJPk+KlVKUmSJElb1Dih7W+AU5M8Msn9gLOBi5YPSHJCknT3H99t9/ZpFytJkiRJW83I0FZVdwHP\nB94H3AC8s6quT3JuknO7Yc8CrkvyCeANwNlVVZtVtCRJW0mSdwB/DTwqyaEkP9t3TZKk2RnrO23d\nKY+XrFi2b9n984Hzp1uaJEkCqKpz+q5BktQfv0UoSZIkSQ0ztEmSJElSwwxtkiRJktQwQ5skSZIk\nNczQJkmSJEkNM7RJkiRJUsMMbZIkSZLUMEObJEmSJDXM0CZJkiRJDTO0SZIkSVLDDG2SJEmS1DBD\nmyRJkiQ1zNAmSZIkSQ0ztEmSJElSwwxtkiRJktQwQ5skSZIkNczQJkmSJEkNM7RJkiRJUsMMbZIk\nSZLUMEObJEmSJDXM0CZJkiRJDTO0SZIkSVLDDG2SJEmS1LCxQluSpyX5TJKDSV66yvokeUO3/tok\np0+/VEmStq5Rc7Ek6b5rZGhLsg34Q+DpwGnAOUlOWzHs6cCp3W0v8MYp1ylJ0pY15lwsSbqPGueT\ntscDB6vqs1X1dWA/sGfFmD3AhTVwOXBckhOnXKskSVvVOHOxJOk+apzQdhJw87LHh7pl6x0jSZI2\nxnlWkrawo2f5ZEn2Mjh9EmAxyWfG+LHjgS9sXlVbgj2cjP2bjP2bXN89fESPz60xbXCO3Sr6fg21\nyr4MZ2+Gszer22hfxppjxwlttwCnLHt8crdsvWOoqguAC8Yp7G5JrqyqufX8jO7JHk7G/k3G/k3O\nHoox5tmNzLFbha+h1dmX4ezNcPZmdZvdl3FOj/wb4NQkj0xyP+Bs4KIVYy4CnttdRfIM4HBV3Trl\nWiVJ2qrGmYslSfdRIz9pq6q7kjwfeB+wDXhzVV2f5Nxu/T7gEuBM4CBwB/C8zStZkqStZdhc3HNZ\nkqQZGes7bVV1CYNgtnzZvmX3CzhvuqV9i6d6TM4eTsb+Tcb+Tc4eatW5WGPzNbQ6+zKcvRnO3qxu\nU/uSQd6SJEmSJLVonO+0SZIkSZJ60ntoS/LmJLcluW7Zstck+XSSa5O8J8lx3fJdSe5Mck132zd8\ny1vDkP79Vte7a5K8P8l3LFv3siQHk3wmyY/1U3U71tM/97/VrdbDZetelKSSHL9smfvgMuvpn/ug\ndG8eRwznMcJwzv+rc04frvf5uqp6vQE/ApwOXLds2VOBo7v7vwv8bnd/1/Jx3ob27yHL7v8CsK+7\nfxrwCeDSwt1BAAAC1UlEQVT+wCOBvwW29f07HEH9c/8bs4fd8lMYXDThJuD4bpn74GT9cx/05m3F\nzeOIdffGY4T192bL7DfO6VPrzdT3md4/aauqjwBfXLHs/VV1V/fwcgb/PxqtYkj/vrzs4bHA3V9c\n3APsr6qvVdXfMbja5+NnUmij1tk/rWK1HnZeB7yYe/bPfXCFdfZP0goeRwznMcJwzv+rc04fru/5\nuvfQNoafAS5d9viR3ceMH07yw30V1bokr05yM/BTwCu6xScBNy8bdqhbphWG9A/c/8aSZA9wS1V9\nYsUq98ExrNE/cB+U1svjiBU8RhjO+f/enNOHm+V83XRoS/KrwF3A27tFtwIPr6ofAH4J+NMkD+mr\nvpZV1a9W1SkMevf8vus50gzpn/vfGJI8CHg595zsNKYR/XMflNbB44jVeYwwnPP/PTmnDzfr+brZ\n0Jbkp4FnAD9V3cmh3cevt3f3r2Jw7uz39FbkkeHtwH/o7t/C4Lzbu53cLdNw3+qf+9/YvovBue2f\nSHIjg/3s6iQn4D44jqH9cx+UxudxxFg8RhjO+X/AOX24mc7XTYa2JE9jcG7oM6vqjmXLH5pkW3f/\nO4FTgc/2U2W7kpy67OEe4NPd/YuAs5PcP8kjGfTvY7Our3XD+uf+N56q+mRVPayqdlXVLganS5xe\nVZ/DfXCktfrnPiiNx+OI4TxGGM75/96c04eb9Xx99MQVTyjJO4B54Pgkh4BXAi9jcCWaDyQBuLyq\nzmVw1ZbfTPINYAk4t6pW+0LgljGkf2cmeRSDHt0EnAtQVdcneSfwKQani5xXVd/spfBGrKd/uP+t\narUeVtWbVhvrPnhv6+kf7oPSvXgcMZzHCMM5/6/OOX24vufrdGcMSJIkSZIa1OTpkZIkSZKkAUOb\nJEmSJDXM0CZJkiRJDTO0SZIkSVLDDG2SJEmS1DBDmyRJkiQ1zNAmSZIkSQ0ztEmSJElSw/4/f7qU\nbEa1wSMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_hist(niños,['Boys_9', 'Girls_9'])" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ntr/qpl5/Yh+of9r1J/uzD6rqHfszGg7SsnvsIqb2GFTveptavcn0ah5V76J91imLAAAAgwhkAAAA\ngwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgywUyKrqflX18qp6c1W9qao+e9kDA4Ap0GMB\npm3R/xj6eUle1d1fWVX3TPJxSxwTAEyJHgswYTsGsqo6nOTzkvyrJOnuO5PcudxhAcD602MBWOSU\nxYcleX+Sn66qP6yqF1TVfZY8LgCYAj0WYOKquy++QtWxJK9N8jnd/bqqel6Sv+ju775gvRNJTiTJ\nkSNHHnPy5MklDTnZ3NzMoUOHlrb9VXeg9d9228H8nYs5fPhui8wB9U+5/mR/9sHx48dv7O5j+zQk\nLsEq9thFTO0xuPb1XtDrN5OscbV387F6tzjeWFdrP6cvMKreRfvsIoHsk5K8truPzn9/bJJndfeX\nbnebY8eO9ZkzZ3Y34l04ffp0NjY2lrb9VXeg9Z86dTB/52KuvfZui8wB9U+5/mR/9kFVCWSDrWKP\nXcTUHoNrX+8Fvf702bPZuGI6X8T9sXq3ON5YV2s/py8wqt5F++yOj7bufk+Sd1bVI+eLPj/JG/c4\nPgCYPD0WgEW/ZfG6JP9j/u1Pb0vy9csbEgBMih4LMGELBbLufkMSp7UAwD7TYwGmbTonCAMAAKwY\ngQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwA\nAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQ\ngQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwA\nAGAQgQwAAGAQgQwAAGAQgQwAAGAQgQwAAGCQqxZZqarenuT2JB9Ncld3H1vmoABgKvRYgGlbKJDN\nHe/uW5c2EgCYLj0WYKKcsggAADDIooGsk/xGVd1YVSeWOSAAmBg9FmDCqrt3Xqnqgd39rqp6QJJf\nT3Jdd7/mgnVOJDmRJEeOHHnMyZMnlzHeJMnm5mYOHTq0tO2vugOt/7bbDubvXMzhw3dbZA6of8r1\nJ/uzD44fP36jzyuNt2o9dhFTewwurd5V6LFb2EwynXv3vHq3ON5YVx7DB2PRPrtQIPsbN6h6TpLN\n7v7h7dY5duxYnzlzZlfb3Y3Tp09nY2NjadtfdQda/6lTB/N3Lubaa++2yBxQ/5TrT/ZnH1SVQLZi\nVqHHLmJqj8Gl1bsKPXYLp8+ezcYV0/lUy8fq3eJ4Y115DB+MRfvsjo+2qrpPVd333OUkX5jkpr0P\nEQCmTY8FYJFvWTyS5Beq6tz6L+nuVy11VAAwDXoswMTtGMi6+21JPv0AxgIAk6LHAjCdE4QBAABW\njEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAG\nAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAw\niEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAG\nAAAwiEAGAAAwiEAGAAAwiEAGAAAwiEAGAAAwyMKBrKqurKo/rKpXLnNAADA1eizAdO3mHbJvTvKm\nZQ0EACZMjwWYqIUCWVU9KMmXJnnBcocDANOixwJM26LvkP1okn+X5OwSxwIAU6THAkxYdffFV6j6\nsiRP6O6nV9VGkm/v7i/bYr0TSU4kyZEjRx5z8uTJJQx3ZnNzM4cOHVra9pMkt9223O0v4vDhLRcf\nSP3nrOh+ONB9sILUP+36k/3ZB8ePH7+xu4/t05C4BKvYYxcxtcfg0updhR67hc0k07l3V6zebY79\n9pvH8MFYtM8uEsj+U5KnJLkryb2TfHySG7r767a7zbFjx/rMmTO7G/EunD59OhsbG0vbfpLk1Knl\nbn8R11675eIDqf+cFd0PB7oPVpD6p11/sj/7oKoEssFWsccuYmqPwaXVuwo9dgunz57NxhXT+SLu\nlap3m2O//eYxfDAW7bM7zr7u/q7uflB3H03ypCS/ebFGAQAsRo8FYEVeDgAAAJieq3azcnefTnJ6\nKSMBgAnTYwGmyTtkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAA\ngwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhk\nAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAA\ngwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAgwhkAAAAg+wYyKrq3lX1\n+1X1R1V1c1V970EMDADWnR4LwFULrHNHksd392ZV3SPJ71TVr3T3a5c8NgBYd3oswMTtGMi6u5Ns\nzn+9x/ynlzkoAJgCPRaAmvWCHVaqujLJjUk+JclPdPd3brHOiSQnkuTIkSOPOXny5D4P9a9tbm7m\n0KFDS9t+kuS225a7/UUcPrzl4gOp/5xV2A9b2ExyQHtgtcznxIHOgRU09fqT/dkHx48fv7G7j+3T\nkLhEq9ZjF7Hn+bcKvWWbHruVpT3nrMJ+2MLUeuxK1buLebkXU+ujo+pdtM8uFMg+tnLV/ZL8QpLr\nuvum7dY7duxYnzlzZuHt7tbp06ezsbGxtO0nSU6dWu72F3HttVsuPpD6z1mF/bCF02fPZuOKCX4n\nzXxOHOgcWEFTrz/Zn31QVQLZClmVHruIPc+/Vegt2/TYrSztOWcV9sMWptZjV6reXczLvZhaHx1V\n76J9dlezr7s/mOS3knzxpQ4MALg7PRZgmhb5lsX7z1+1S1X9rST/NMmblz0wAFh3eiwAi3zL4icn\n+Zn5Oe5XJHlZd79yucMCgEnQYwEmbpFvWfzjJI8+gLEAwKTosQCsyCcYAQAApkcgAwAAGEQgAwAA\nGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQg\nAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAA\nGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQgAwAAGEQg\nAwAAGEQgAwAAGEQgAwAAGGTHQFZVD66q36qqN1bVzVX1zQcxMABYd3osAFctsM5dSZ7Z3X9QVfdN\ncmNV/Xp3v3HJYwOAdafHAkzcju+QdfefdfcfzC/fnuRNSR647IEBwLrTYwHY1WfIqupokkcned0y\nBgMAU6XHAkxTdfdiK1YdSvLqJD/Q3Tdscf2JJCeS5MiRI485efLkpY/qttsuevVmkkOXvvXL3tTr\nT+yDydd/5ZU5dGjKeyDZ3Nzc8z44fvz4jd19bJ+GxB6sUo9dxFo8Bx0+vPCq+/F429I+3BfLsBb3\n7y5Mrd7kMqh5F4/PRSztMbyDRfvsQoGsqu6R5JVJfrW7/+tO6x87dqzPnDmz0EC3dOrURa8+ffZs\nNq6Y7hdETr3+xD6YfP33vW82NjZGD2Oo06dP73kfVJVAtgJWrccuYi2eg669duFV9+PxtqV9uC+W\nYS3u312YWr3JZVDzLh6fi1jaY3gHi/bZRb5lsZK8MMmbFmkUAMBi9FgAFonGn5PkKUkeX1VvmP88\nYcnjAoAp0GMBJm7Hr73v7t9JUgcwFgCYFD0WgBU+eRQAAGC9CWQAAACDCGQAAACDCGQAAACDCGQA\nAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACD\nCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQA\nAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACD\nCGQAAACD7BjIqur6qnpfVd10EAMCgKnQYwFY5B2yFyX54iWPAwCm6EXRYwEmbcdA1t2vSfLnBzAW\nAJgUPRYAnyEDAAAYpLp755WqjiZ5ZXd/2kXWOZHkRJIcOXLkMSdPnrz0Ud1220Wv3kxy6NK3ftmb\nev2JfaD+adefzPfB4cN72sbx48dv7O5j+zMiLtWq9dhFTO0xqN71NrV6k+nVfEn17rHHJov32av2\n/Jfmuvv5SZ6fJMeOHeuNjY1L39ipUxe9+vTZs9m4Yrpv7k29/sQ+UP+060/m+2Avz7NcVg6yxy5i\nao9B9a63qdWbTK/mS6r3AHvsdO4JAACAFbPI196/NMnvJXlkVd1SVd+w/GEBwPrTYwHY8ZTF7n7y\nQQwEAKZGjwXAKYsAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACD\nCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQA\nAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACD\nCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDCGQAAACDLBTIquqLq+otVfXWqnrW\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_hist(niños, ['Boys_18', 'Girls_18'])" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from scipy.stats import ttest_ind\n", "\n", "def plot_probs(df, boy_col, girl_col):\n", " fig = plt.figure()\n", " ax = fig.add_subplot(111)\n", " # No considero los valores Nan\n", " boy_values = df[boy_col].values\n", " boy_values = boy_values[~np.isnan(boy_values)]\n", " weights = np.ones_like(boy_values)/len(boy_values)\n", " _ = ax.hist(boy_values, alpha=0.3, label=['Niños'], weights=weights)\n", " girl_values = df[girl_col].values\n", " girl_values = girl_values[~np.isnan(girl_values)]\n", " weights = np.ones_like(girl_values)/len(girl_values)\n", " _ = ax.hist(girl_values, color='red', alpha=.3, label='Niñas', weights=weights)\n", " ax.set_xlabel('Altura(cm)', fontsize=14)\n", " ax.set_ylabel('Probabilidad', fontsize=14)\n", " ax.vlines(np.mean(boy_values), 0.0, ax.get_ylim()[1], colors='b', linestyle='--', linewidth=4)\n", " ax.vlines(np.mean(girl_values), 0.0, ax.get_ylim()[1], colors='r', linestyle='--', linewidth=4)\n", " ax.legend()\n", " print(\"Resultado \", ttest_ind(boy_values, girl_values))" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Resultado Ttest_indResult(statistic=1.0708580982445333, pvalue=0.28882695040683509)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4YAAAFECAYAAAB7zCCbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuUXGWZ7/HvYwJJQMEJgYiEljjhlsMlkjbqjEQYbyhi\nWDiHQdAoGDMoiBjOiOhxgHHGSwwHxMBEJBwNgow6cOw4KMKIgsMgJBDugm2AEAYlgEa5E3zOH1UZ\nqppOp6pTVTtd+/tZq1fV++531/519uqkn7zv3jsyE0mSJElSeb2k6ACSJEmSpGJZGEqSJElSyVkY\nSpIkSVLJWRhKkiRJUslZGEqSJElSyVkYSpIkSVLJWRhKkiRJUslZGEqSJElSyVkYSpIkSVLJjS46\nQDtNmDAhd9lll6JjSJIkSVIhli9f/khmbr+xcV1dGO6yyy4sW7as6BiSJEmSVIiIuL+RcS4llSRJ\nkqSSszCUJEmSpJKzMJQkSZKkkuvqawwlSZIklcNzzz3H6tWrefrpp4uOUoixY8cyadIktthii2Ht\nb2EoSZIkacRbvXo1L3vZy9hll12IiKLjdFRm8uijj7J69WomT548rM9wKakkSZKkEe/pp59mu+22\nK11RCBARbLfddps0W2phKEmSJKkrlLEoXG9Tv3cLQ0mSJEkqOa8xlCRJktR1rrrzty39vLdMnbjR\nMRHBvHnzOOOMMwBYsGABjz/+OKeddhqLFi1iq622Yvbs2QDMmTOHu+++m0mTJnHOOecwfvz4luZt\nloWhJEmSJLXAmDFjuPTSSznllFOYMGFC3bZjjz22rn3++ed3MtpGuZRUkiRJklpg9OjRzJ07lzPP\nPPNF20477TQWLFgAwAEHHMDJJ5/MjBkz2G233bj22muByg10jj76aPbee29e85rXcPXVVwNwxx13\nMGPGDKZNm8Y+++zDr371q5ZntzCUJKkdIuq/JEmlcNxxx3HRRRexdu3aIcetW7eOG264gbPOOovT\nTz8dgHPOOYeI4LbbbuPb3/42H/jAB3j66adZtGgRH//4x1mxYgXLli1j0qRJLc/d0cIwIg6KiLsj\noj8iPjXI9qMi4taIuC0irouIfWu23VftXxERyzqZW5IkSZIasc022zB79mzOPvvsIccddthhAEyf\nPp377rsPgJ///Oe8733vA2CPPfbgVa96Fffccw9veMMb+PznP8+XvvQl7r//fsaNG9fy3B0rDCNi\nFHAO8A5gKvDeiJg6YNi9wJsyc2/gc8B5A7YfmJnTMrO37YElSZIkaRhOPPFEFi9ezBNPPLHBMWPG\njAFg1KhRrFu3bsjPO/LII+nr62PcuHG8853v5Cc/+UlL80JnZwxnAP2ZuTIznwUuAWbVDsjM6zLz\nd9Xm9UDr50glSeqEzPovSVJpjB8/nsMPP5zFixc3td/+++/PRRddBMA999zDqlWr2H333Vm5ciWv\nfvWrOeGEE5g1axa33npryzN38q6kOwEP1LRXA68bYvyHgB/WtBO4KiKeB76WmQNnEwGIiLnAXICe\nnp5NCixJkiRpZGrk8RLtdNJJJ7Fw4cKm9vnoRz/KRz7yEfbee29Gjx7NN77xDcaMGcN3vvMdLrzw\nQrbYYgte8YpX8OlPf7rleSM79L+YEfHXwEGZOafafj/wusw8fpCxBwLnAm/MzEerfTtl5oMRsQNw\nJfCxzLxmqGP29vbmsmVejihJkiR1u7vuuos999yz6BiFGuzPICKWN3IpXieXkj4I7FzTnlTtqxMR\n+wDnA7PWF4UAmflg9fVh4DIqS1MlSZIkSZuok0tJbwR2jYjJVArCI4AjawdERA9wKfD+zLynpn9r\n4CWZ+cfq+7cB/9Cx5JIkNWv58vr29OnF5JAkqQEdKwwzc11EHA9cAYwCLsjMOyLi2Or2RcDfA9sB\n50blmU/rqtOeE4HLqn2jgYsz80edyi5JUtN6B6za8QY0kqTNWCdnDMnMy4HLB/Qtqnk/B5gzyH4r\ngX0H9kuSJEmSNl1HH3AvSZIkSdr8WBhKkiRJUsl1dCmpJEka2SqX+7/ASyclbbaWLm3t5x1yyEaH\nRATz5s3jjDPOAGDBggU8/vjjnHbaaSxatIitttqK2bNnAzBnzhzuvvtuJk2axDnnnMP48eNbm7dJ\nFoaSJEmS1AJjxozh0ksv5ZRTTmHChAl124499ti69vnnn9/JaBvlUlJJkiRJaoHRo0czd+5czjzz\nzBdtO+2001iwYAEABxxwACeffDIzZsxgt91249prrwXgvvvuY//992e//fZjv/3247rrrgPgoYce\nYubMmUybNo299trrv8e3koWhJEmSJLXIcccdx0UXXcTatWuHHLdu3TpuuOEGzjrrLE4//XQAdthh\nB6688kpuuukm/uVf/oUTTjgBgIsvvpi3v/3trFixgltuuYVp06a1PLdLSSVJkiSpRbbZZhtmz57N\n2Wefzbhx4zY47rDDDgNg+vTp3HfffQA899xzHH/88axYsYJRo0Zxzz33APDa176WY445hueee45D\nDz20LYWhM4aSJEmS1EInnngiixcv5oknntjgmDFjxgAwatQo1q1bB8CZZ57JxIkTueWWW1i2bBnP\nPvssADNnzuSaa65hp5124oMf/CBLlixpeWYLQ0mSJElqofHjx3P44YezePHipvZbu3YtO+64Iy95\nyUu48MILef755wG4//77mThxIh/+8IeZM2cON910U8szu5RUkqR26NLnOHTptyWpGzXweIl2Oumk\nk1i4cGFT+3z0ox/lPe95D0uWLOGggw5i6623BuCnP/0pX/7yl9liiy146Utf2pYZw8gu/hu+t7c3\nly1bVnQMSZIkSW121113seeeexYdo1CD/RlExPLM7N3Yvi4llSRJkqSSszCUJEmSpJLzGkNJktph\n+fL69vTpxeRosS79tiR1icwkIoqOUYhNvUTQwlCSpHboHXA5R5dc09+l35ZGiKvu/G3REQrzlqkT\ni46w2Rs7diyPPvoo2223XemKw8zk0UcfZezYscP+DAtDSZIkSSPepEmTWL16NWvWrCk6SiHGjh3L\npEmThr2/haEkSZKkEW+LLbZg8uTJRccYsbz5jCRJkiSVnIWhJEmSJJWchaEkSZIklZyFoSRJkiSV\nnIWhJEmSJJWchaEkSZIklZyFoSRJkiSVnIWhJEmSJJWcD7iXJKkdMotO0BZd+m1JUulZGEqS1C5L\nlxadYGQ55JCiE0hSabmUVJIkSZJKzsJQkiRJkkrOpaSSJLXD8uXQ3/9Ce8qU4rK00PL+beva06es\nLSiJJKmVLAwlSWqH3t76dl9fMTlarHfezLp29nkdpSR1A5eSSpIkSVLJWRhKkiRJUslZGEqSJElS\nyVkYSpIkSVLJWRhKkiRJUslZGEqSJElSyVkYSpIkSVLJWRhKkiRJUslZGEqSJElSyVkYSpIkSVLJ\njS46gCRJXSkTli4tOkXLZV/3fU+SpA7PGEbEQRFxd0T0R8SnBtl+VETcGhG3RcR1EbFvo/tKkiRJ\nkoanY4VhRIwCzgHeAUwF3hsRUwcMuxd4U2buDXwOOK+JfSVJkiRJw9DJGcMZQH9mrszMZ4FLgFm1\nAzLzusz8XbV5PTCp0X0lSZIkScPTyWsMdwIeqGmvBl43xPgPAT9sdt+ImAvMBejp6RluVkmSNs3y\n5dDf/0J7ypTisrTQ8v5t69rTp6wtKIkkqZU2y5vPRMSBVArDNza7b2aeR3UJam9vb7Y4miRJjent\nrW/39RWTo8V6582sa3szGknqDp0sDB8Edq5pT6r21YmIfYDzgXdk5qPN7CtJkiRJal4nrzG8Edg1\nIiZHxJbAEUDdf59GRA9wKfD+zLynmX0lSZIkScPTsRnDzFwXEccDVwCjgAsy846IOLa6fRHw98B2\nwLkRAbAuM3s3tG+nskuSJElSN+voNYaZeTlw+YC+RTXv5wBzGt1XkiRJkrTpOvqAe0mSJEnS5sfC\nUJIkSZJKzsJQkiRJkkrOwlCSJEmSSs7CUJIkSZJKzsJQkiRJkkquo4+rkCSpNDJh6dKiU7Rc9nXf\n9yRJsjCUJDWjCwsdSZLkUlJJkiRJKj0LQ0mSJEkqOZeSSpLUDv399e0pU4rJ0WLL+7eta0+fsrag\nJJKkVrIwlCSpHebNq2/39RWTo8V6582sa3szGknqDi4llSRJkqSSszCUJEmSpJKzMJQkSZKkkrMw\nlCRJkqSSszCUJEmSpJKzMJQkSZKkkrMwlCRJkqSSszCUJEmSpJKzMJQkSZKkkrMwlCRJkqSSG72x\nARExs9EPy8xrNi2OJEldoq+v6ARtkX1Li44gSWqDjRaGwE+BBKLazurrwDbAqNbEkiRJkiR1SiNL\nSbcHdqi+vgu4G5gNTKl+zQZ+Cby7TRklSZIkSW200RnDzHx0/fuI+Bzw8cy8smbIyoh4GJgP/Fvr\nI0qSJEmS2qmRpaS1pgKrB+l/ENhj0+NIktQl+vvr21OmFJOjxZb3b1vXnj5lbUFJJEmt1GxheAdw\nakQcnZlPAUTEOODvq9skSRLAvHn17S65GU3vvPp70nkzGknqDs0Whh8BfgA8GBG3Vvv2Bp4HDm5l\nMEmSJElSZzRVGGbmjRHxauAoXlg6ehFwcWY+0epwkiRJkqT2a3bGkGoBeF4bskiSJEmSCtB0YRgR\no4EZQA+wZe22zFzSolySJEmSpA5pqjCMiD2ApcBkKg+4f776Gc8BzwAWhpIkSZI0wjTygPtaZwHL\ngW2BJ4E9gV5gBfCe1kaTJEmSJHVCs0tJXwu8KTOfiIg/AaMz86aI+CTwVWCflieUJEmSJLVVszOG\nQWWmEGANsFP1/WqgO57cK0mSJEkl0+yM4e3AvsBK4Abg5Ih4Hvgw0N/ibJIkSZKkDmi2MPwnYOvq\n+/8N/BtwNfAIcHgLc0mSJEmSOqTZB9xfUfN+JbBnRIwHfpeZ2epwkiSNWH19RSdoi+xbWnQESVIb\nNP0cw4Ey87FWBJEkSSW31KKzKYccUnQCSV1ko4VhRFwNNDQbmJl/tcmJJEmSJEkd1ciM4e0170cB\nRwG/AX5R7ZsB7Ah8q7XRJEnasBWrfl90hEJN63l50REKU+ZzX+bzLqm9NloYZubH1r+PiDOBbwIf\nr72mMCLOovIoiyFFxEHAV6gUmOdn5hcHbN8D+L/AfsBnMnNBzbb7gD8CzwPrMrN3Y8eTJKko41bd\nW9d+qmdyQUlaa3n/tnXt6VPWFpREktRKzV5jOBt4wyA3mjkXuB74+IZ2jIhRwDnAW6k89/DGiOjL\nzDtrhj0GnAAcuoGPOTAzH2kysyRJHbf7/FPr2isWLikoSWv1zptZ1/ZmNJLUHYbzgPu9B+kfrG+g\nGUB/Zq7MzGeBS4BZtQMy8+HMvBF4rslckiRJkqRhanbG8ALg/IjYlcoMIcDrgU9SWQI6lJ2AB2ra\nq4HXNXHsBK6KiOeBr2XmeYMNioi5wFyAnp6eJj5ekiRJksqp2cLwk8DDVJaMfr7a9xDwReCMFuYa\nzBsz88GI2AG4MiJ+mZnXDBxULRjPA+jt7fXZipIkSZK0Ec0+4P5PwHxgfkRsU+37Q4O7PwjsXNOe\nVO1r9NgPVl8fjojLqCxNfVFhKEmSJElqTrPXGP63zPxDE0UhwI3ArhExOSK2BI4A+hrZMSK2joiX\nrX8PvI36x2hIkiRJkoapkQfc3wq8KTN/FxG3McTD7jNznyG2rYuI44ErqDyu4oLMvCMijq1uXxQR\nrwCWAdsAf4qIE4GpwATgsohYn/nizPxRo9+kJEmSJGnDGllK+q/AM9X339uUg2Xm5cDlA/oW1bz/\nDZUlpgP9Adh3U44tSZIkSRpcIw+4P32w95IkSZKk7jDsawwlSZIkSd2hkWsMh7yusNZQ1xhKkiRJ\nkjZPjVxjuEnXFUqSVEYrFi4pOkJbZN/SoiNIktqgqWsMJUmSJEndx2sMJUmSJKnkOvYcQ0mSJEnS\n5qmjzzGUJKksxq26t679VM/kgpK01vL+beva06esLSiJJKmVfI6hJEltsPv8U+va3XIzmt55M+va\n3oxGkrpDIzOGLxIRfw7sWW3elZm/bl0kSZIkSVInNVUYRsR2wGLg3cCfXuiOHwDHZOajLc4nSZIk\nSWqzZu9Kej4wBdgfGFv9mglMBr7e2miSJEmSpE5odinp24E3Z+Z/1vT9R0T8LXBV62JJkiRJkjql\n2RnDNcATg/Q/CbiMVJIkSZJGoGYLw38AzoqIndZ3VN+fUd0mSZIkSRphGnnA/cCH2k8G7ouIB6vt\nnYCngR2oXIMoSZIkSRpBGrnG0IfaS5IkSVIXa+oB95IkSZKk7tPsNYaSJEmSpC7T7APutwQ+A7wX\n6AG2qN2emaNaF02SpJFrxcIlRUdoi+xbWnQESVIbNPscw88BfwN8ATgT+DtgF+AI4LMtTdbNlvqP\nalMOOaToBJIkSVJXa3Yp6eHAsZn5NeB54PuZeQJwKvDWVoeTJEmSJLVfs4XhRODO6vvHgZdX3/8I\neFurQkmSJEmSOqfZpaSrgFdWX/uBtwPLgTcAT7U2miRJI9e4VffWtZ/qmVxQktZa3r9tXXv6lLUF\nJZEktVKzheFlwJuB64GvAN+OiA9Tecj9l1ucTZKkEWv3+afWtbvlZjS982bWtb0ZjSR1h6YKw8w8\npeb99yJiNfAXwD2Z+YNWh5MkSZIktV+zM4Z1MvN6KrOHkiRJkqQRqukH3EfEfhGxJCKWVb8ujIj9\n2hFOkiRJktR+TRWGEXEUcCOwI3B59WsicENEvK/18SRJkiRJ7dbsUtJ/Aj6bmZ+v7YyIU4B/BL7V\nqmCSpI276s7fdvR4E1b9vqPHk1RvRc3P4CMd/vmX1N2aXUq6PfCdQfq/C+yw6XEkSZIkSZ3WbGF4\nNXDAIP0HAD/b1DCSJEmSpM7b6FLSiDispvlD4AsR0csLdyN9PXAYcFrL00mSJEmS2q6Rawy/N0jf\n3OpXra8C525yIkmSJElSR220MMzMph9pIUmSJEkaOTbpAfeSJGlwKxYuKTpCW2Tf0qIjSJLaYDgP\nuD84Iq6JiEciYk1E/Cwi3tmOcJIkSZKk9mv2AfdzgMuAXwMnA58C7gUui4hjWh9PkiRJktRuzS4l\nPRmYl5kLa/oWR8RyKkXiBS1LJkmSJEnqiGYLwx7gR4P0/xBYsOlxJEnqDuNW3VvXfqpnckFJWmt5\n/7Z17elT1haURJLUSs0WhquAtwL9A/rfBtzfkkSSJHWB3eefWtfulpvR9M6bWdf2ZjSS1B2aLQwX\nAF+NiP2A66p9fwm8H/hYK4NJkiRJkjqjqZvPZObXgL8B9qRSJC4A9gAOz8zzNrZ/RBwUEXdHRH9E\nfGqQ7XtExH9GxDMR8b+a2VeSJEmSNDwNzxhGxGgqS0avyczLmj1QRIwCzqGyFHU1cGNE9GXmnTXD\nHgNOAA4dxr6SJEmSpGFoeMYwM9cBlwIvG+axZgD9mbkyM58FLgFmDTjGw5l5I/Bcs/tKkiRJkoan\n2Qfc3wJMGeaxdgIeqGmvrva1dN+ImBsRyyJi2Zo1a4YVVJIkSZLKpNnC8DTgjIg4NCJ2jojxtV9t\nyNe0zDwvM3szs3f77bcvOo4kSZIkbfaavSvpv1VfLwWypj+q7VFD7PsgsHNNe1K1rxGbsq8kSZIk\naQjNFoYHbsKxbgR2jYjJVIq6I4AjO7CvJEmSJGkIDRWGEbEVMJ/K3ULHAFcCJ2TmI40eKDPXRcTx\nwBVUZhYvyMw7IuLY6vZFEfEKYBmwDfCniDgRmJqZfxhs34a/S0mSJEnSBjU6Y3g6cDTwLeBp4Cjg\nn4H/2czBMvNy4PIBfYtq3v+GyjLRhvaVJEmSJG26RgvDw4APZeYlABFxEfAfETEqM59vWzpJarel\nS4tOsEkmrPp90RG0ASsWLik6Qltk38j+mZHUoBH+72MhDjmk6ASbpNG7ku4MXLu+kZk3AOuAV7Yj\nlCRJkiSpcxotDEcBzw7oW0fzN6+RJEmSJG1mGi3sAvhWRDxT0zcW+HpEPLm+IzPf3cpwkiRJkqT2\na7Qw/OYgfd9qZRBJkrrJuFX31rWf6plcUJLWWt6/bV17+pS1BSWRJLVSQ4VhZh7d7iCSJHWT3eef\nWtfulpvR9M6bWdf2ZjSS1B0avcZQkiRJktSlLAwlSZIkqeQsDCVJkiSp5CwMJUmSJKnkLAwlSZIk\nqeQsDCVJkiSp5CwMJUmSJKnkLAwlSZIkqeQsDCVJkiSp5CwMJUmSJKnkRhcdQJKkbrRi4ZKiI7RF\n9i0tOoIkqQ2cMZQkSZKkknPGsMusWPX7oiO03CN3/rahcW+ZOrHNSTZfVzX4Z9StynzuVV7d+Pe9\nJKk4zhhKkiRJUsk5YyhJUhuMW3VvXfupnskFJWmtO1eNr2tP7XmsoCSSpFayMJQkqQ12n39qXbtb\nbkZz1PyD69o3L7ywoCSSpFZyKakkSZIklZyFoSRJkiSVnIWhJEmSJJWchaEkSZIklZyFoSRJkiSV\nnIWhJEmSJJWchaEkSZIklZyFoSRJkiSVnIWhJEmSJJWchaEkSZIkldzoogNIktSNVixcUnSEtrh5\n4YVFR5CGZcLVPy46wqb59cuLTqAu54yhJEmSJJWchaEkSZIklZyFoSRJkiSVnNcYSpLUBuNW3VvX\nfqpnckFJWuvOVePr2lN7HisoiSSplSwMJUlqg93nn1rX7pab0Rw1/+C6tjejkaTu4FJSSZIkSSo5\nC0NJkiRJKjkLQ0mSJEkqOQtDSZIkSSq5jhaGEXFQRNwdEf0R8alBtkdEnF3dfmtE7Fez7b6IuC0i\nVkTEsk7mliRJkqRu1rG7kkbEKOAc4K3AauDGiOjLzDtrhr0D2LX69Trgn6uv6x2YmY90KLIkSZIk\nlUInZwxnAP2ZuTIznwUuAWYNGDMLWJIV1wMvj4gdO5hRkiRJkkqnk4XhTsADNe3V1b5GxyRwVUQs\nj4i5GzpIRMyNiGURsWzNmjUtiC1JkiRJ3W0k3XzmjZk5jcpy0+MiYuZggzLzvMzszcze7bffvrMJ\nJUmSJGkE6mRh+CCwc017UrWvoTGZuf71YeAyKktTJUmSJEmbqGM3nwFuBHaNiMlUir0jgCMHjOkD\njo+IS6jcdGZtZj4UEVsDL8nMP1bfvw34hw5mlySpKSsWLik6QlvcvPDCoiNIktqgY4VhZq6LiOOB\nK4BRwAWZeUdEHFvdvgi4HHgn0A88CRxd3X0icFlErM98cWb+qFPZJUmSJKmbdXLGkMy8nErxV9u3\nqOZ9AscNst9KYN+2B5QkSZKkEhpJN5+RJEmSJLVBR2cMJUkqi3Gr7q1rP9UzuaAkrXXnqvF17ak9\njxWURJLUShaGkiS1we7zT61rd8vNaI6af3Bd25vRSFJ3cCmpJEmSJJWchaEkSZIklZyFoSRJkiSV\nnIWhJEmSJJWchaEkSZIklZyFoSRJkiSVnIWhJEmSJJWchaEkSZIklZyFoSRJkiSVnIWhJEmSJJXc\n6KIDSBsz4eofNzbw1y9vb5DN2IRVvy86QrFKfO61+VqxcEnREdri5oUXFh1BktQGzhhKkiRJUslZ\nGEqSJElSyVkYSpIkSVLJeY2hJEltMG7VvXXtp3omF5Skte5cNb6uPbXnsYKSSJJaycJQkqQ22H3+\nqXXtbrkZzVHzD65rezMaSeoOLiWVJEmSpJKzMJQkSZKkkrMwlCRJkqSSszCUJEmSpJKzMJQkSZKk\nkrMwlCRJkqSSszCUJEmSpJKzMJQkSZKkkrMwlCRJkqSSszCUJEmSpJIbXXQASZK60YqFS4qO0BY3\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_probs(niños, 'Boys_2', 'Girls_2')" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Resultado Ttest_indResult(statistic=0.87148628022315633, pvalue=0.38720967132857143)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4YAAAFECAYAAAB7zCCbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu0XGWZ5/HvYxJCQNEJkYiEY6Jcs+RicozttCBOe0FR\n48JeDBqNgjEdhUYGZkR0FNBW2xgGGhONkdB2IkjbNiyDjSKMKNg0TRIItyAYA4TDoISgUe4Envmj\nKlp1LknVOXVqn1P7+1mrVu333XtX/cjaq8KT993vjsxEkiRJklReLyg6gCRJkiSpWBaGkiRJklRy\nFoaSJEmSVHIWhpIkSZJUchaGkiRJklRyFoaSJEmSVHIWhpIkSZJUchaGkiRJklRyFoaSJEmSVHJj\niw4wnCZNmpRTp04tOoYkSZIkFWLt2rWPZOZLd3ZcRxeGU6dOZc2aNUXHkCRJkqRCRMT9jRznVFJJ\nkiRJKjkLQ0mSJEkqOQtDSZIkSSq5jr7HUJIkSVI5PPvss/T09PDUU08VHaUQu+66K1OmTGHcuHGD\nOt/CUJIkSdKo19PTw4te9CKmTp1KRBQdp60yky1bttDT08O0adMG9RlOJZUkSZI06j311FPsueee\npSsKASKCPffcc0ijpRaGkiRJkjpCGYvC7Yb6325hKEmSJEkl5z2GkiRJkjrONet/29LPe/P0yTs9\nJiI47bTTOPfccwFYtGgRjz32GGeffTZLly5lt912Y+7cuQDMmzePu+++mylTprBkyRImTpzY0rzN\nsjCUJEmSpBYYP348l112GWeeeSaTJk2q27dgwYK69oUXXtjOaDvlVFJJkiRJaoGxY8cyf/58zjvv\nvD77zj77bBYtWgTAUUcdxRlnnMGsWbM44IADuP7664HKAjonnHAChxxyCK95zWu49tprAbjzzjuZ\nNWsWhx9+OIceeii/+tWvWp7dwlCSJPUVUf+SJDXkpJNO4uKLL2br1q07PG7btm3cdNNNnH/++Zxz\nzjkALFmyhIjg9ttv57vf/S4f+tCHeOqpp1i6dCmf+MQnWLduHWvWrGHKlCktz21hKEmSJEktssce\nezB37lwuuOCCHR537LHHAjBz5kzuu+8+AH7xi1/wgQ98AICDDjqIV7ziFdxzzz28/vWv50tf+hJf\n+cpXuP/++5kwYULLc1sYSpIkSVILnXrqqSxfvpzHH398wGPGjx8PwJgxY9i2bdsOP+/9738/q1at\nYsKECbzjHe/gpz/9aUvzgoWhJEnqT2b9S5LUsIkTJ3LcccexfPnyps474ogjuPjiiwG455572LRp\nEwceeCAbN27kla98JaeccgqzZ8/mtttua3lmVyWVJEmS1HEaebzEcDr99NNZvHhxU+d8/OMf52Mf\n+xiHHHIIY8eO5dvf/jbjx4/ne9/7HitXrmTcuHG87GUv49Of/nTL80Z28L8Cdnd355o1a4qOIUmS\nJGmY3XXXXRx88MFFxyhUf38GEbE2M7t3dq5TSSVJkiSp5JxKKkmS+lq7tr49c2YxOSRJbWFhKEmS\n+uruNeuog289kSQ5lVSSJEmSSs/CUJIkSZJKzsJQkiRJkkrOewwlSdKoElHf9vZHSf264orWft67\n3rXTQyKC0047jXPPPReARYsW8dhjj3H22WezdOlSdtttN+bOnQvAvHnzuPvuu5kyZQpLlixh4sSJ\nrc3bJAtDSZIkSWqB8ePHc9lll3HmmWcyadKkun0LFiyoa1944YXtjLZTTiWVJEmSpBYYO3Ys8+fP\n57zzzuuz7+yzz2bRokUAHHXUUZxxxhnMmjWLAw44gOuvvx6A++67jyOOOIIZM2YwY8YMbrjhBgAe\neughjjzySA4//HBe/epX/+n4VrIwlCRJkqQWOemkk7j44ovZunXrDo/btm0bN910E+effz7nnHMO\nAHvttRdXX301N998M//8z//MKaecAsAll1zC2972NtatW8ett97K4Ycf3vLcTiWVJEmSpBbZY489\nmDt3LhdccAETJkwY8Lhjjz0WgJkzZ3LfffcB8Oyzz3LyySezbt06xowZwz333APAa1/7Wk488USe\nffZZ3vOe9wxLYeiIoSRJkiS10Kmnnsry5ct5/PHHBzxm/PjxAIwZM4Zt27YBcN555zF58mRuvfVW\n1qxZwzPPPAPAkUceyXXXXcc+++zDhz/8YVasWNHyzBaGkiRJktRCEydO5LjjjmP58uVNnbd161b2\n3ntvXvCCF7By5Uqee+45AO6//34mT57MRz/6UebNm8fNN9/c8sxOJZUkSX2N4GdAjOBokkaSBh4v\nMZxOP/10Fi9e3NQ5H//4x3nve9/LihUrOProo9l9990B+NnPfsZXv/pVxo0bxwtf+MJhGTGM7OBf\n1+7u7lyzZk3RMSRJkiQNs7vuuouDDz646BiF6u/PICLWZmb3zs5t61TSiDg6Iu6OiA0R8al+9s+J\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_probs(niños, 'Boys_9', 'Girls_9')" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Resultado Ttest_indResult(statistic=7.8761998332333256, pvalue=1.2361838873133691e-10)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_probs(niños, 'Boys_18', 'Girls_18')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obsérvese que aunque hay diferencias en las alturas de niñas y niños a los 2 años 9, no se encuentran diferencias significativas en promedio. Sin embargo, a los 18 años de edad, en promedio los niños son más altos que las niñas y esta diferencia es estadísticamente significativa a nivel de 0,05" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Time Series" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityColors ReportedShape ReportedStateTime
0IthacaNaNTRIANGLENY6/1/1930 22:00
1WillingboroNaNOTHERNJ6/30/1930 20:00
2HolyokeNaNOVALCO2/15/1931 14:00
3AbileneNaNDISKKS6/1/1931 13:00
4New York Worlds FairNaNLIGHTNY4/18/1933 19:00
\n", "
" ], "text/plain": [ " City Colors Reported Shape Reported State Time\n", "0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00\n", "1 Willingboro NaN OTHER NJ 6/30/1930 20:00\n", "2 Holyoke NaN OVAL CO 2/15/1931 14:00\n", "3 Abilene NaN DISK KS 6/1/1931 13:00\n", "4 New York Worlds Fair NaN LIGHT NY 4/18/1933 19:00" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leyendo el dataset de reportes de avistamientos en un dataframe\n", "ufo = pd.read_csv('../data/ufo.csv')\n", "ufo.head()" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 22\n", "1 20\n", "2 14\n", "3 13\n", "4 19\n", "Name: Time, dtype: int64" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Hora se puede acceder usando el corte de cadena, pero este enfoque se rompe con demasiada facilidad\n", "ufo.Time.str.slice(-5, -3).astype(int).head()" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1930-06-01 22:00:00\n", "1 1930-06-30 20:00:00\n", "2 1931-02-15 14:00:00\n", "3 1931-06-01 13:00:00\n", "4 1933-04-18 19:00:00\n", "Name: Time, dtype: datetime64[ns]" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Convierte 'Time' a un datetime format\n", "ufo['Time'] = pd.to_datetime(ufo.Time)\n", "ufo['Time'].head()" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Convertir una sola cadena al formato datetime (sale un objeto timestamp)\n", "\n", "ts = pd.to_datetime('1/1/1999')" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CityColors ReportedShape ReportedStateTime
12832Loma RicaNaNLIGHTCA1999-01-01 02:30:00
12833BauxiteNaNNaNAR1999-01-01 03:00:00
12834FlorenceNaNCYLINDERSC1999-01-01 14:00:00
12835Lake HenshawNaNCIGARCA1999-01-01 15:00:00
12836Wilmington IslandNaNLIGHTGA1999-01-01 17:15:00
\n", "
" ], "text/plain": [ " City Colors Reported Shape Reported State \\\n", "12832 Loma Rica NaN LIGHT CA \n", "12833 Bauxite NaN NaN AR \n", "12834 Florence NaN CYLINDER SC \n", "12835 Lake Henshaw NaN CIGAR CA \n", "12836 Wilmington Island NaN LIGHT GA \n", "\n", " Time \n", "12832 1999-01-01 02:30:00 \n", "12833 1999-01-01 03:00:00 \n", "12834 1999-01-01 14:00:00 \n", "12835 1999-01-01 15:00:00 \n", "12836 1999-01-01 17:15:00 " ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Comparar una serie de fecha y hora con una marca de tiempo\n", "ufo.loc[ufo.Time >= ts, :].head()" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1930\n", "1 1930\n", "2 1931\n", "3 1931\n", "4 1933\n", "Name: Year, dtype: int64" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Cuenta el numero de avistamientos de ovnis por año\n", "\n", "ufo['Year'] = ufo.Time.dt.year\n", "ufo['Year'].head()" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nnEe8NnzbzN6XVL6w9nXOrehN0p2Srpf0ZlLZK5Lu8o5/RdJ/946LJPm943pJ/UmP90u6RZJJelrS\n+1f6Z+G2tPZNev7vJX1H0ueTymjfDLst8LvbnPy6865D22bgbYHt65f0hqRd3uNqSTm0b2beFvPf\nZa/8GknHkx7Tthl4W+B39z9JesI7LpLUKamZ9s3c2wLb92FJX/eO6yS9KslH+2bmTYlsc713XCrp\nmKSdkv5Y0he88i9I+p/e8U5JByXlS9os6fhi/+1d8R5A59yzkoLnFW+X9Kx3/Iykn/NeG3LORb3y\nAklOksysXlKZc+4ll/ipvynpI8tdd1zeQtpXkszsI5I6JB1OKqN9M9BC23YutG3mWmD7/oykN5xz\nB71zB51zMdo3My3hu/txSU9IfHcz2QLb10kqNjO/pEJJEUmjtG/mWmD77pT0r955/ZKGJe2hfTOT\nc67POfeadzwm6aikBkn3Snrce9njOttW9yrxB5ywc65DUrukmxbTvpkyB/CwEj+UJN0nqWnmCTO7\n2cwOSzok6de9QNggqSfp/B6vDJlpzvY1sxJJvyPpv533eto3e1z0uytpszeE7N/N7A6vjLbNLhdr\n3+2SnJn9yMxeM7P/wyunfbPHpb67M/6jpG97x7RtdrlY+/69pAlJfZK6JP2pcy4o2jfbXKx9D0r6\nsJn5zWyzpBu852jfDGdmzZKuk/SypHXOuT7vqdOS1nnHDZK6k06baccFt2+mBMBfkfSQmb2qRBdo\nZOYJ59zLzrmrJN0o6ZGZeSbIKhdr39+T9CXn3Hi6KoYlu1jb9kna6JzbLem3JP2dnTf3E1nhYu3r\nl3S7pF/w7j9qZu9OTxWxSBf9d1dK/PFVUsg59+ZcJyPjXax9b5IUk7RBiSFkv21mW9JTRSzBxdr3\na0r88t8q6c8lvaBEeyODeR0i35X0OefcaPJzXo9eyvfs86f6govhnHtLiSFFMrPtkj44x2uOmtm4\npKsl9UpqTHq60StDBrpE+94s6efN7I8lVUiKm9mUEl8C2jcLXKxtnXNhSWHv+FUzO65ErxHf3Sxy\nie9uj6RnnXMB77mnlJij8v+K9s0K8/h3936d7f2T+O5mlUu073+S9EPn3LSkfjPbJ2mPpOdE+2aN\nS/zbG5X0v8+8zsxeUGJe2ZBo34xkZrlK/N77Lefc97ziM2ZW75zr84Z39nvlvTp3tMZMOy74v88Z\n0QNoZnXevU/Sf5H0l97jzd44dZnZJkk7JHV63aKjZnaLt8rNJyX9IC2Vx2VdrH2dc3c455qdc81K\n/KXqD5xz/zftmz0u8d2tNbMc73iLpBZJJ2jb7HKx9pX0I0nXmFmR99/ouyQdoX2zxyXadqbsY/Lm\n/0mJuSqibbPGJdq3S9K7vOeKlVg04i3aN7tc4t/eIq9dZWbvlRR1zvHf5gzltcVXJR11zn0x6am9\nkh7wjh/Q2bbaK+l+M8v3hvi2SNq/mPZd8R5AM/u2pLsl1ZhZj6TflVRiZg97L/mepK97x7dL+oKZ\nTUuKS3po5i/Okh6S9A0lJjE/7d2QZgts30uhfTPMAtv2Tkm/n/Td/XVvnolE22akhbSvc27IzL6o\nxEp0TtJTzrl/9l5H+2aYRfx3+U5J3c65E+ddirbNQAts3/9H0te9tRVMiRUj3/Ceo30z0ALbt07S\nj8wsrkQP0C8mXYr2zTy3KdFGh8zsgFf2nyX9kaQnzexTkk4q8Qc5OecOm9mTko5Iikp62Dk3M8R3\nQe1r3tKhAAAAAIBVLiOGgAIAAAAAlh8BEAAAAADWCAIgAAAAAKwRBEAAAAAAWCMIgAAAAACwRhAA\nAQAAAGCNIAACAAAAwBrx/wMrS0Pw+0rwZwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Grafica el número de informes de OVNI por año\n", "\n", "ufo.Year.value_counts().sort_index().plot()" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/html": [ "/* This template is inspired in the one used by Lorena Barba\n", "in the numerical-mooc repository: https://github.com/numerical-mooc/numerical-mooc\n", "We thank her work and hope you also enjoy the look of the notobooks with this style */\n", "\n", "\n", "Estilo aplicado\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Esta celda da el estilo al notebook\n", "from IPython.core.display import HTML\n", "css_file = '../styles/StyleCursoPython.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }