Files
Presentations/EVI - 2018/EVI 04/Modulo3.ipynb

2886 lines
246 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"attachments": {
"nummatplot.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"# *Manipulación y Análisis de Datos con Python* \n",
"![nummatplot.png](attachment:nummatplot.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"## Pre-procesamiento de datos"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Manejo de datos faltantes"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>A</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>24.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>23.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>12.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>17.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>5.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" A\n",
"0 24.0\n",
"1 NaN\n",
"2 NaN\n",
"3 23.0\n",
"4 NaN\n",
"5 12.0\n",
"6 NaN\n",
"7 17.0\n",
"8 NaN\n",
"9 2.0\n",
"10 5.0"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datos1 = pd.DataFrame([24, np.nan, np.nan, 23,np.nan, 12, np.nan, 17, np.nan, 2 ,5], columns = list('A'))\n",
"datos1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"En `dropna()` el argumento `subset` considera la etiqueta para seleccionar el conjunto a descartar, `axis=0` descarta filas (`axis=1` columnas) y `inplace= True` hace que los cambios se ejecuten directamente en `DataFrame`."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>A</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>24.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>23.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>12.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>17.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>5.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" A\n",
"0 24.0\n",
"3 23.0\n",
"5 12.0\n",
"7 17.0\n",
"9 2.0\n",
"10 5.0"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datos1.dropna(subset=['A'], axis= 0, inplace= True)\n",
"datos1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br> \n",
"La función `replace()` permite reemplazar valores faltantes en el `DataFrame` por valores nuevos. En nuestro ejemplo, reemplazaremos con el promedio, que se calcula con la función `mean()`. "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13.833333333333334"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datos1 = pd.DataFrame([24, np.nan, np.nan, 23,np.nan, 12, np.nan, 17, np.nan, 2 ,5], columns = list('A'))\n",
"media = datos1['A'].mean()\n",
"media"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Ahora usamos la función `replace()`"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>A</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>24.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>13.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>13.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>23.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>13.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>12.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>13.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>17.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>13.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>5.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" A\n",
"0 24.000000\n",
"1 13.833333\n",
"2 13.833333\n",
"3 23.000000\n",
"4 13.833333\n",
"5 12.000000\n",
"6 13.833333\n",
"7 17.000000\n",
"8 13.833333\n",
"9 2.000000\n",
"10 5.000000"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datos1['A'].replace(np.nan, media, inplace = True)\n",
"datos1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"## Transformando los datos"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Mezclando y combinando `DataFrames`"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Artículo comprado</th>\n",
" <th>Costo</th>\n",
" <th>Nombre</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Libro</td>\n",
" <td>1200</td>\n",
" <td>Adelis</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Raspberry pi 3</td>\n",
" <td>15000</td>\n",
" <td>Miguel</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 2</th>\n",
" <td>Balón</td>\n",
" <td>5000</td>\n",
" <td>Jaime</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Artículo comprado Costo Nombre\n",
"Tienda 1 Libro 1200 Adelis\n",
"Tienda 1 Raspberry pi 3 15000 Miguel\n",
"Tienda 2 Balón 5000 Jaime"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"compra_1 = pd.Series({'Nombre': 'Adelis',\n",
" 'Artículo comprado': 'Libro',\n",
" 'Costo': 1200})\n",
"compra_2 = pd.Series({'Nombre': 'Miguel',\n",
" 'Artículo comprado': 'Raspberry pi 3',\n",
" 'Costo': 15000})\n",
"compra_3 = pd.Series({'Nombre': 'Jaime',\n",
" 'Artículo comprado': 'Balón',\n",
" 'Costo': 5000})\n",
"df = pd.DataFrame([compra_1, compra_2, compra_3], index=['Tienda 1', 'Tienda 1', 'Tienda 2'])\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Podemos agregar elementos al `DataFrame` de la siguiente manera:"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Artículo comprado</th>\n",
" <th>Costo</th>\n",
" <th>Nombre</th>\n",
" <th>Fecha</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Libro</td>\n",
" <td>1200</td>\n",
" <td>Adelis</td>\n",
" <td>Diciembre 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Raspberry pi 3</td>\n",
" <td>15000</td>\n",
" <td>Miguel</td>\n",
" <td>Febrero 4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 2</th>\n",
" <td>Balón</td>\n",
" <td>5000</td>\n",
" <td>Jaime</td>\n",
" <td>Mediados de Julio</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Artículo comprado Costo Nombre Fecha\n",
"Tienda 1 Libro 1200 Adelis Diciembre 1\n",
"Tienda 1 Raspberry pi 3 15000 Miguel Febrero 4\n",
"Tienda 2 Balón 5000 Jaime Mediados de Julio"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Fecha'] = ['Diciembre 1', 'Febrero 4', 'Mediados de Julio']\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Artículo comprado</th>\n",
" <th>Costo</th>\n",
" <th>Nombre</th>\n",
" <th>Fecha</th>\n",
" <th>Entregado</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Libro</td>\n",
" <td>1200</td>\n",
" <td>Adelis</td>\n",
" <td>Diciembre 1</td>\n",
" <td>Sí</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Raspberry pi 3</td>\n",
" <td>15000</td>\n",
" <td>Miguel</td>\n",
" <td>Febrero 4</td>\n",
" <td>Sí</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 2</th>\n",
" <td>Balón</td>\n",
" <td>5000</td>\n",
" <td>Jaime</td>\n",
" <td>Mediados de Julio</td>\n",
" <td>Sí</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Artículo comprado Costo Nombre Fecha Entregado\n",
"Tienda 1 Libro 1200 Adelis Diciembre 1 Sí\n",
"Tienda 1 Raspberry pi 3 15000 Miguel Febrero 4 Sí\n",
"Tienda 2 Balón 5000 Jaime Mediados de Julio Sí"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Entregado'] = 'Sí'\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Artículo comprado</th>\n",
" <th>Costo</th>\n",
" <th>Nombre</th>\n",
" <th>Fecha</th>\n",
" <th>Entregado</th>\n",
" <th>Retroalimentación</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Libro</td>\n",
" <td>1200</td>\n",
" <td>Adelis</td>\n",
" <td>Diciembre 1</td>\n",
" <td>Sí</td>\n",
" <td>Positiva</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 1</th>\n",
" <td>Raspberry pi 3</td>\n",
" <td>15000</td>\n",
" <td>Miguel</td>\n",
" <td>Febrero 4</td>\n",
" <td>Sí</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tienda 2</th>\n",
" <td>Balón</td>\n",
" <td>5000</td>\n",
" <td>Jaime</td>\n",
" <td>Mediados de Julio</td>\n",
" <td>Sí</td>\n",
" <td>Negativa</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Artículo comprado Costo Nombre Fecha Entregado \\\n",
"Tienda 1 Libro 1200 Adelis Diciembre 1 Sí \n",
"Tienda 1 Raspberry pi 3 15000 Miguel Febrero 4 Sí \n",
"Tienda 2 Balón 5000 Jaime Mediados de Julio Sí \n",
"\n",
" Retroalimentación \n",
"Tienda 1 Positiva \n",
"Tienda 1 None \n",
"Tienda 2 Negativa "
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Retroalimentación'] = ['Positiva', None, 'Negativa']\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Pandas `reset_index ()` es un método para restablecer el índice de un `DataFrame`. El establece como índices una lista de enteros que van desde 0 hasta la longitud de los datos."
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>index</th>\n",
" <th>Artículo comprado</th>\n",
" <th>Costo</th>\n",
" <th>Nombre</th>\n",
" <th>Fecha</th>\n",
" <th>Entregado</th>\n",
" <th>Retroalimentación</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Tienda 1</td>\n",
" <td>Libro</td>\n",
" <td>1200</td>\n",
" <td>Adelis</td>\n",
" <td>Diciembre 1</td>\n",
" <td>Sí</td>\n",
" <td>Positiva</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Tienda 1</td>\n",
" <td>Raspberry pi 3</td>\n",
" <td>15000</td>\n",
" <td>Miguel</td>\n",
" <td>Febrero 4</td>\n",
" <td>Sí</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Tienda 2</td>\n",
" <td>Balón</td>\n",
" <td>5000</td>\n",
" <td>Jaime</td>\n",
" <td>Mediados de Julio</td>\n",
" <td>Sí</td>\n",
" <td>Negativa</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index Artículo comprado Costo Nombre Fecha Entregado \\\n",
"0 Tienda 1 Libro 1200 Adelis Diciembre 1 Sí \n",
"1 Tienda 1 Raspberry pi 3 15000 Miguel Febrero 4 Sí \n",
"2 Tienda 2 Balón 5000 Jaime Mediados de Julio Sí \n",
"\n",
" Retroalimentación \n",
"0 Positiva \n",
"1 None \n",
"2 Negativa "
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"adf = df.reset_index()\n",
"adf"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Podemos tener un par de tablas de datos que nos interese unir o combinar en un mismo `DataFrame`."
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Función\n",
"Nombre \n",
"Adriana Gerente de ventas\n",
"Andrés Vendedor 1\n",
"Cristóbal Gerente de departamento\n",
"\n",
" Grado\n",
"Nombre \n",
"Andrés Nivel 3\n",
"Cristóbal Nivel 1\n",
"Adriana Nivel 2\n"
]
}
],
"source": [
"empleados_df = pd.DataFrame([{'Nombre': 'Adriana', 'Función': 'Gerente de ventas'},\n",
" {'Nombre': 'Andrés', 'Función': 'Vendedor 1'},\n",
" {'Nombre': 'Cristóbal', 'Función': 'Gerente de departamento'}])\n",
"empleados_df = empleados_df.set_index('Nombre')\n",
"grado_df = pd.DataFrame([{'Nombre': 'Andrés', 'Grado': 'Nivel 3'},\n",
" {'Nombre': 'Cristóbal', 'Grado': 'Nivel 1'},\n",
" {'Nombre': 'Adriana', 'Grado': 'Nivel 2'}])\n",
"grado_df = grado_df.set_index('Nombre')\n",
"print(empleados_df.head())\n",
"print()\n",
"print(grado_df.head())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"`pd.merge()` conecta filas en el `DataFrames` basado en una o más teclas. Para los conocedores de SQL esta función hace unión de bases de datos por columnas o índices."
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Función</th>\n",
" <th>Grado</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Nombre</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Adriana</th>\n",
" <td>Gerente de ventas</td>\n",
" <td>Nivel 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Andrés</th>\n",
" <td>Vendedor 1</td>\n",
" <td>Nivel 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cristóbal</th>\n",
" <td>Gerente de departamento</td>\n",
" <td>Nivel 1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Función Grado\n",
"Nombre \n",
"Adriana Gerente de ventas Nivel 2\n",
"Andrés Vendedor 1 Nivel 3\n",
"Cristóbal Gerente de departamento Nivel 1"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_info_empleados=pd.merge(empleados_df, grado_df, how='outer', left_index=True, right_index=True)\n",
"df_info_empleados"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Otros ejemplos de cómo variar el parámetro `how` se pueden encontrar en el libro *Python for Data Analysis* - McKinney."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Supongamos que tenemos ahora un nuevo `DataFrame` que coincide en número de filas con el anterior. Por ejemplo:"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Fecha de Ingreso\n",
"Nombre \n",
"Adriana 20/06/2013\n",
"Andrés 10/01/2018\n",
"Cristóbal 20/03/2011\n",
" Art.Vendidos/Total Art.\n",
"Nombre \n",
"Adriana 0.0123\n",
"Andrés 0.1450\n",
"Cristóbal 0.5000\n"
]
}
],
"source": [
"fecha_ingreso_df = pd.DataFrame([{'Nombre': 'Adriana', 'Fecha de Ingreso': '20/06/2013'},\n",
" {'Nombre': 'Andrés', 'Fecha de Ingreso': '10/01/2018'},\n",
" {'Nombre': 'Cristóbal', 'Fecha de Ingreso': '20/03/2011'}])\n",
"fecha_ingreso_df = fecha_ingreso_df.set_index('Nombre')\n",
"art_vendidos_df = pd.DataFrame([{'Nombre': 'Adriana', 'Art.Vendidos/Total Art.': 123/10000},\n",
" {'Nombre': 'Andrés', 'Art.Vendidos/Total Art.': 1450/10000},\n",
" {'Nombre': 'Cristóbal', 'Art.Vendidos/Total Art.': 5000/10000}])\n",
"art_vendidos_df = art_vendidos_df.set_index('Nombre')\n",
"\n",
"print(fecha_ingreso_df.head())\n",
"print(art_vendidos_df.head())\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"`pd.concat()` pega o apila objetos a lo largo de un eje."
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Función</th>\n",
" <th>Grado</th>\n",
" <th>Fecha de Ingreso</th>\n",
" <th>Art.Vendidos/Total Art.</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Nombre</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Adriana</th>\n",
" <td>Gerente de ventas</td>\n",
" <td>Nivel 2</td>\n",
" <td>20/06/2013</td>\n",
" <td>0.0123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Andrés</th>\n",
" <td>Vendedor 1</td>\n",
" <td>Nivel 3</td>\n",
" <td>10/01/2018</td>\n",
" <td>0.1450</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cristóbal</th>\n",
" <td>Gerente de departamento</td>\n",
" <td>Nivel 1</td>\n",
" <td>20/03/2011</td>\n",
" <td>0.5000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Función Grado Fecha de Ingreso \\\n",
"Nombre \n",
"Adriana Gerente de ventas Nivel 2 20/06/2013 \n",
"Andrés Vendedor 1 Nivel 3 10/01/2018 \n",
"Cristóbal Gerente de departamento Nivel 1 20/03/2011 \n",
"\n",
" Art.Vendidos/Total Art. \n",
"Nombre \n",
"Adriana 0.0123 \n",
"Andrés 0.1450 \n",
"Cristóbal 0.5000 "
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"new_data = pd.concat([df_info_empleados, fecha_ingreso_df, art_vendidos_df], axis=1)\n",
"new_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Hay mucho más que aprender! Por ejemplo: ¿Qué sucede si `axis=0`? **R**: pues posiblemente el resultado sea que Pandas pegue todos los valores y sus índices. Como se muestra a continuación:"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Art.Vendidos/Total Art.</th>\n",
" <th>Fecha de Ingreso</th>\n",
" <th>Función</th>\n",
" <th>Grado</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Nombre</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Adriana</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Gerente de ventas</td>\n",
" <td>Nivel 2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Andrés</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Vendedor 1</td>\n",
" <td>Nivel 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cristóbal</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Gerente de departamento</td>\n",
" <td>Nivel 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Adriana</th>\n",
" <td>NaN</td>\n",
" <td>20/06/2013</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Andrés</th>\n",
" <td>NaN</td>\n",
" <td>10/01/2018</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cristóbal</th>\n",
" <td>NaN</td>\n",
" <td>20/03/2011</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Adriana</th>\n",
" <td>0.0123</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Andrés</th>\n",
" <td>0.1450</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cristóbal</th>\n",
" <td>0.5000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Art.Vendidos/Total Art. Fecha de Ingreso Función \\\n",
"Nombre \n",
"Adriana NaN NaN Gerente de ventas \n",
"Andrés NaN NaN Vendedor 1 \n",
"Cristóbal NaN NaN Gerente de departamento \n",
"Adriana NaN 20/06/2013 NaN \n",
"Andrés NaN 10/01/2018 NaN \n",
"Cristóbal NaN 20/03/2011 NaN \n",
"Adriana 0.0123 NaN NaN \n",
"Andrés 0.1450 NaN NaN \n",
"Cristóbal 0.5000 NaN NaN \n",
"\n",
" Grado \n",
"Nombre \n",
"Adriana Nivel 2 \n",
"Andrés Nivel 3 \n",
"Cristóbal Nivel 1 \n",
"Adriana NaN \n",
"Andrés NaN \n",
"Cristóbal NaN \n",
"Adriana NaN \n",
"Andrés NaN \n",
"Cristóbal NaN "
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.concat([df_info_empleados, fecha_ingreso_df, art_vendidos_df], axis=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Otra transformación de interés podría ser hacer algún cálculo sobre una columna entera. En nuestro ejemplo, supongamos que deseamos colocar **% de artículos vendidos** y cambiar la etiqueta de esa columna.\n"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Función</th>\n",
" <th>Grado</th>\n",
" <th>Fecha de Ingreso</th>\n",
" <th>% Art. Vendidos</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Nombre</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Adriana</th>\n",
" <td>Gerente de ventas</td>\n",
" <td>Nivel 2</td>\n",
" <td>20/06/2013</td>\n",
" <td>1.23</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Andrés</th>\n",
" <td>Vendedor 1</td>\n",
" <td>Nivel 3</td>\n",
" <td>10/01/2018</td>\n",
" <td>14.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cristóbal</th>\n",
" <td>Gerente de departamento</td>\n",
" <td>Nivel 1</td>\n",
" <td>20/03/2011</td>\n",
" <td>50.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Función Grado Fecha de Ingreso % Art. Vendidos\n",
"Nombre \n",
"Adriana Gerente de ventas Nivel 2 20/06/2013 1.23\n",
"Andrés Vendedor 1 Nivel 3 10/01/2018 14.50\n",
"Cristóbal Gerente de departamento Nivel 1 20/03/2011 50.00"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"new_data\n",
"new_data['Art.Vendidos/Total Art.']= new_data['Art.Vendidos/Total Art.']*100\n",
"new_data.rename(columns = {'Art.Vendidos/Total Art.': '% Art. Vendidos'}, inplace = True)\n",
"new_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Normalizando datos"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Tomemos un `DataFrame` que representa dimensiones de cajas a ser vendidas en un almacén. "
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Largo</th>\n",
" <th>Ancho</th>\n",
" <th>Alto</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>168.7</td>\n",
" <td>68.3</td>\n",
" <td>46.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>170.0</td>\n",
" <td>60.2</td>\n",
" <td>47.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>150.3</td>\n",
" <td>65.0</td>\n",
" <td>45.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>168.7</td>\n",
" <td>68.3</td>\n",
" <td>46.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>145.2</td>\n",
" <td>45.9</td>\n",
" <td>45.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>200.0</td>\n",
" <td>70.0</td>\n",
" <td>40.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>175.4</td>\n",
" <td>75.1</td>\n",
" <td>45.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>163.0</td>\n",
" <td>63.5</td>\n",
" <td>43.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>230.0</td>\n",
" <td>65.2</td>\n",
" <td>46.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>129.6</td>\n",
" <td>68.7</td>\n",
" <td>49.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>178.2</td>\n",
" <td>78.0</td>\n",
" <td>47.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Largo Ancho Alto\n",
"0 168.7 68.3 46.8\n",
"1 170.0 60.2 47.0\n",
"2 150.3 65.0 45.0\n",
"3 168.7 68.3 46.8\n",
"4 145.2 45.9 45.3\n",
"5 200.0 70.0 40.9\n",
"6 175.4 75.1 45.6\n",
"7 163.0 63.5 43.8\n",
"8 230.0 65.2 46.8\n",
"9 129.6 68.7 49.0\n",
"10 178.2 78.0 47.2"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dimension1 = pd.DataFrame([168.7, 170.0, 150.3, 168.7, 145.2, 200.0, 175.4, 163.0, 230.0, 129.6, 178.2], columns = list('L'))\n",
"dimension1.rename(columns = {'L': 'Largo'}, inplace = True)\n",
"\n",
"\n",
"dimension2 = pd.DataFrame([68.3, 60.2, 65.0, 68.3, 45.9, 70.0, 75.1, 63.5, 65.2, 68.7, 78], columns = list('A'))\n",
"dimension2.rename(columns = {'A': 'Ancho'}, inplace = True)\n",
"\n",
"\n",
"dimension3 = pd.DataFrame([46.8, 47.0, 45.0, 46.8, 45.3, 40.9, 45.6, 43.8, 46.8, 49.0, 47.2], columns = list('A'))\n",
"dimension3.rename(columns = {'A': 'Alto'}, inplace = True)\n",
"\n",
"\n",
"dimensiones = pd.concat([dimension1, dimension2, dimension3], axis=1)\n",
"dimensiones"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Método de **\"Escala de característica simple\"**: se divide cada valor por el\n",
"valor máximo para esa característica, $x_{nuevo} = \\frac{x_{viejo}}{x_{máximo}}$"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Largo</th>\n",
" <th>Ancho</th>\n",
" <th>Alto</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.733478</td>\n",
" <td>0.875641</td>\n",
" <td>0.955102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.739130</td>\n",
" <td>0.771795</td>\n",
" <td>0.959184</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.653478</td>\n",
" <td>0.833333</td>\n",
" <td>0.918367</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.733478</td>\n",
" <td>0.875641</td>\n",
" <td>0.955102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.631304</td>\n",
" <td>0.588462</td>\n",
" <td>0.924490</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.869565</td>\n",
" <td>0.897436</td>\n",
" <td>0.834694</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.762609</td>\n",
" <td>0.962821</td>\n",
" <td>0.930612</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.708696</td>\n",
" <td>0.814103</td>\n",
" <td>0.893878</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1.000000</td>\n",
" <td>0.835897</td>\n",
" <td>0.955102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.563478</td>\n",
" <td>0.880769</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.774783</td>\n",
" <td>1.000000</td>\n",
" <td>0.963265</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Largo Ancho Alto\n",
"0 0.733478 0.875641 0.955102\n",
"1 0.739130 0.771795 0.959184\n",
"2 0.653478 0.833333 0.918367\n",
"3 0.733478 0.875641 0.955102\n",
"4 0.631304 0.588462 0.924490\n",
"5 0.869565 0.897436 0.834694\n",
"6 0.762609 0.962821 0.930612\n",
"7 0.708696 0.814103 0.893878\n",
"8 1.000000 0.835897 0.955102\n",
"9 0.563478 0.880769 1.000000\n",
"10 0.774783 1.000000 0.963265"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dimensiones['Largo'] = dimensiones['Largo']/dimensiones['Largo'].max()\n",
"dimensiones['Ancho'] = dimensiones['Ancho']/dimensiones['Ancho'].max()\n",
"dimensiones['Alto'] = dimensiones['Alto']/dimensiones['Alto'].max()\n",
"dimensiones\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Método **Mínimo - Máximo**: toma cada valor, $x_{viejo}$ le resta el mínimo\n",
"valor de esa característica y luego se divide por el rango de esa característica, es decir, $x_{nuevo} = \\frac{x_{viejo} - x_{mínimo}}{x_{máximo} - x_{mínimo}}$"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Largo</th>\n",
" <th>Ancho</th>\n",
" <th>Alto</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.389442</td>\n",
" <td>0.697819</td>\n",
" <td>0.728395</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.402390</td>\n",
" <td>0.445483</td>\n",
" <td>0.753086</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.206175</td>\n",
" <td>0.595016</td>\n",
" <td>0.506173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.389442</td>\n",
" <td>0.697819</td>\n",
" <td>0.728395</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.155378</td>\n",
" <td>0.000000</td>\n",
" <td>0.543210</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.701195</td>\n",
" <td>0.750779</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.456175</td>\n",
" <td>0.909657</td>\n",
" <td>0.580247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.332669</td>\n",
" <td>0.548287</td>\n",
" <td>0.358025</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1.000000</td>\n",
" <td>0.601246</td>\n",
" <td>0.728395</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.000000</td>\n",
" <td>0.710280</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.484064</td>\n",
" <td>1.000000</td>\n",
" <td>0.777778</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Largo Ancho Alto\n",
"0 0.389442 0.697819 0.728395\n",
"1 0.402390 0.445483 0.753086\n",
"2 0.206175 0.595016 0.506173\n",
"3 0.389442 0.697819 0.728395\n",
"4 0.155378 0.000000 0.543210\n",
"5 0.701195 0.750779 0.000000\n",
"6 0.456175 0.909657 0.580247\n",
"7 0.332669 0.548287 0.358025\n",
"8 1.000000 0.601246 0.728395\n",
"9 0.000000 0.710280 1.000000\n",
"10 0.484064 1.000000 0.777778"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dimensiones['Largo'] = (dimensiones['Largo']-dimensiones['Largo'].min())/(dimensiones['Largo'].max() - dimensiones['Largo'].min())\n",
"dimensiones['Ancho'] = (dimensiones['Ancho']-dimensiones['Ancho'].min())/(dimensiones['Ancho'].max() - dimensiones['Ancho'].min())\n",
"dimensiones['Alto'] = (dimensiones['Alto']-dimensiones['Alto'].min())/(dimensiones['Alto'].max() - dimensiones['Alto'].min())\n",
"dimensiones\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Método **Puntaje estándar**: \n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Largo</th>\n",
" <th>Ancho</th>\n",
" <th>Alto</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>-0.078861</td>\n",
" <td>0.249968</td>\n",
" <td>0.451435</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>-0.030668</td>\n",
" <td>-0.714195</td>\n",
" <td>0.545129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-0.760972</td>\n",
" <td>-0.142839</td>\n",
" <td>-0.391812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>-0.078861</td>\n",
" <td>0.249968</td>\n",
" <td>0.451435</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>-0.950036</td>\n",
" <td>-2.416358</td>\n",
" <td>-0.251270</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1.081470</td>\n",
" <td>0.452323</td>\n",
" <td>-2.312540</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.169517</td>\n",
" <td>1.059389</td>\n",
" <td>-0.110729</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>-0.290167</td>\n",
" <td>-0.321388</td>\n",
" <td>-0.953976</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2.193608</td>\n",
" <td>-0.119032</td>\n",
" <td>0.451435</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>-1.528347</td>\n",
" <td>0.297581</td>\n",
" <td>1.482070</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.273316</td>\n",
" <td>1.404583</td>\n",
" <td>0.638823</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Largo Ancho Alto\n",
"0 -0.078861 0.249968 0.451435\n",
"1 -0.030668 -0.714195 0.545129\n",
"2 -0.760972 -0.142839 -0.391812\n",
"3 -0.078861 0.249968 0.451435\n",
"4 -0.950036 -2.416358 -0.251270\n",
"5 1.081470 0.452323 -2.312540\n",
"6 0.169517 1.059389 -0.110729\n",
"7 -0.290167 -0.321388 -0.953976\n",
"8 2.193608 -0.119032 0.451435\n",
"9 -1.528347 0.297581 1.482070\n",
"10 0.273316 1.404583 0.638823"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dimensiones['Largo'] = (dimensiones['Largo']-dimensiones['Largo'].mean())/(dimensiones['Largo'].std())\n",
"dimensiones['Ancho'] = (dimensiones['Ancho']-dimensiones['Ancho'].mean())/(dimensiones['Ancho'].std())\n",
"dimensiones['Alto'] = (dimensiones['Alto']-dimensiones['Alto'].mean())/(dimensiones['Alto'].std())\n",
"dimensiones"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"## Estadística descriptiva"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Tabla de resumen estadístico"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>fuel-type</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>...</th>\n",
" <th>engine-size</th>\n",
" <th>fuel-system</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>gas</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>...</td>\n",
" <td>130</td>\n",
" <td>mpfi</td>\n",
" <td>3.47</td>\n",
" <td>2.68</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>gas</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>...</td>\n",
" <td>130</td>\n",
" <td>mpfi</td>\n",
" <td>3.47</td>\n",
" <td>2.68</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>gas</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>...</td>\n",
" <td>152</td>\n",
" <td>mpfi</td>\n",
" <td>2.68</td>\n",
" <td>3.47</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>gas</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>...</td>\n",
" <td>109</td>\n",
" <td>mpfi</td>\n",
" <td>3.19</td>\n",
" <td>3.40</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>gas</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>...</td>\n",
" <td>136</td>\n",
" <td>mpfi</td>\n",
" <td>3.19</td>\n",
" <td>3.40</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 26 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make fuel-type aspiration \\\n",
"0 3 122 alfa-romero gas std \n",
"1 3 122 alfa-romero gas std \n",
"2 1 122 alfa-romero gas std \n",
"3 2 164 audi gas std \n",
"4 2 164 audi gas std \n",
"\n",
" num-of-doors body-style drive-wheels engine-location wheel-base ... \\\n",
"0 two convertible rwd front 88.6 ... \n",
"1 two convertible rwd front 88.6 ... \n",
"2 two hatchback rwd front 94.5 ... \n",
"3 four sedan fwd front 99.8 ... \n",
"4 four sedan 4wd front 99.4 ... \n",
"\n",
" engine-size fuel-system bore stroke compression-ratio horsepower \\\n",
"0 130 mpfi 3.47 2.68 9.0 111.0 \n",
"1 130 mpfi 3.47 2.68 9.0 111.0 \n",
"2 152 mpfi 2.68 3.47 9.0 154.0 \n",
"3 109 mpfi 3.19 3.40 10.0 102.0 \n",
"4 136 mpfi 3.19 3.40 8.0 115.0 \n",
"\n",
" peak-rpm city-mpg highway-mpg price \n",
"0 5000.0 21 27 13495.0 \n",
"1 5000.0 21 27 16500.0 \n",
"2 5000.0 19 26 16500.0 \n",
"3 5500.0 24 30 13950.0 \n",
"4 5500.0 18 22 17450.0 \n",
"\n",
"[5 rows x 26 columns]"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"df = pd.read_csv('Automobile_data.csv')\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" <td>205.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.834146</td>\n",
" <td>122.000000</td>\n",
" <td>98.756585</td>\n",
" <td>174.049268</td>\n",
" <td>65.907805</td>\n",
" <td>53.724878</td>\n",
" <td>2555.565854</td>\n",
" <td>126.907317</td>\n",
" <td>3.329751</td>\n",
" <td>3.255423</td>\n",
" <td>10.142537</td>\n",
" <td>104.256158</td>\n",
" <td>5125.369458</td>\n",
" <td>25.219512</td>\n",
" <td>30.751220</td>\n",
" <td>13207.129353</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.245307</td>\n",
" <td>31.681008</td>\n",
" <td>6.021776</td>\n",
" <td>12.337289</td>\n",
" <td>2.145204</td>\n",
" <td>2.443522</td>\n",
" <td>520.680204</td>\n",
" <td>41.642693</td>\n",
" <td>0.270844</td>\n",
" <td>0.313597</td>\n",
" <td>3.972040</td>\n",
" <td>39.519211</td>\n",
" <td>476.979093</td>\n",
" <td>6.542142</td>\n",
" <td>6.886443</td>\n",
" <td>7868.768212</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.000000</td>\n",
" <td>86.600000</td>\n",
" <td>141.100000</td>\n",
" <td>60.300000</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.000000</td>\n",
" <td>94.500000</td>\n",
" <td>166.300000</td>\n",
" <td>64.100000</td>\n",
" <td>52.000000</td>\n",
" <td>2145.000000</td>\n",
" <td>97.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7788.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.000000</td>\n",
" <td>97.000000</td>\n",
" <td>173.200000</td>\n",
" <td>65.500000</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5200.000000</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.000000</td>\n",
" <td>102.400000</td>\n",
" <td>183.100000</td>\n",
" <td>66.900000</td>\n",
" <td>55.500000</td>\n",
" <td>2935.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.000000</td>\n",
" <td>120.900000</td>\n",
" <td>208.100000</td>\n",
" <td>72.300000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>288.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 205.000000 205.000000 205.000000 205.000000 205.000000 \n",
"mean 0.834146 122.000000 98.756585 174.049268 65.907805 \n",
"std 1.245307 31.681008 6.021776 12.337289 2.145204 \n",
"min -2.000000 65.000000 86.600000 141.100000 60.300000 \n",
"25% 0.000000 101.000000 94.500000 166.300000 64.100000 \n",
"50% 1.000000 122.000000 97.000000 173.200000 65.500000 \n",
"75% 2.000000 137.000000 102.400000 183.100000 66.900000 \n",
"max 3.000000 256.000000 120.900000 208.100000 72.300000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 205.000000 205.000000 205.000000 205.000000 205.000000 \n",
"mean 53.724878 2555.565854 126.907317 3.329751 3.255423 \n",
"std 2.443522 520.680204 41.642693 0.270844 0.313597 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2145.000000 97.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2935.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 205.000000 205.000000 205.000000 205.000000 205.000000 \n",
"mean 10.142537 104.256158 5125.369458 25.219512 30.751220 \n",
"std 3.972040 39.519211 476.979093 6.542142 6.886443 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5200.000000 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 288.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price \n",
"count 205.000000 \n",
"mean 13207.129353 \n",
"std 7868.768212 \n",
"min 5118.000000 \n",
"25% 7788.000000 \n",
"50% 10595.000000 \n",
"75% 16500.000000 \n",
"max 45400.000000 "
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Gráficos de cajas (o Boxplots)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Vamos a generar datos aleatoriamente y hacer un **gráfico de caja**."
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>-0.736260</td>\n",
" <td>0.440260</td>\n",
" <td>0.731900</td>\n",
" <td>0.254316</td>\n",
" <td>-1.807715</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.053235</td>\n",
" <td>-2.661686</td>\n",
" <td>-1.076339</td>\n",
" <td>0.484691</td>\n",
" <td>0.170791</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.129711</td>\n",
" <td>-0.386408</td>\n",
" <td>1.199626</td>\n",
" <td>-1.070269</td>\n",
" <td>-1.157811</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>-0.271514</td>\n",
" <td>-0.071525</td>\n",
" <td>-0.862646</td>\n",
" <td>-0.789977</td>\n",
" <td>0.300384</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>-0.166081</td>\n",
" <td>0.298657</td>\n",
" <td>1.737711</td>\n",
" <td>0.311688</td>\n",
" <td>1.138495</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4\n",
"0 -0.736260 0.440260 0.731900 0.254316 -1.807715\n",
"1 1.053235 -2.661686 -1.076339 0.484691 0.170791\n",
"2 0.129711 -0.386408 1.199626 -1.070269 -1.157811\n",
"3 -0.271514 -0.071525 -0.862646 -0.789977 0.300384\n",
"4 -0.166081 0.298657 1.737711 0.311688 1.138495"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAADBZJREFUeJzt3V+IXOUZx/Hfr0mkEkUvImtJxBUqYrBVcRDFiy5WSjSl0kJBoVKpsBQqKAg1wYviXaQgvajQhioKFaVgRcnaxEh3kIK1bmwU09USJGKokIpUnVSqqU8vduuJdLsz2XN23zPP+X5gYGf3zHuePEx+8+57/qwjQgCAPL5QugAAQLMIdgBIhmAHgGQIdgBIhmAHgGQIdgBIhmAHgGQIdgBIhmAHgGTWl9jppk2bYnJyssSuP3P8+HFt3LixaA1tQS8q9KJCLypt6cWBAwfejYhzhm1XJNgnJyc1NzdXYtef6ff7mpqaKlpDW9CLCr2o0ItKW3ph+61RtmMpBgCSIdgBIBmCHQCSIdgBIBmCHQCSIdgBIBmCHQCSIdgBIJkiFygBQJvYbmSctvwN6dozdtvn2Z61PW/7kO07migMANZKRCz7OP/uPUO3aUuoS83M2E9IuisiXrZ9pqQDtvdHxF8aGBsAcIpqz9gj4p2IeHnx6w8lzUvaXHdcAMDKNHrw1PakpMslvdjkuACA0TV28NT2GZKekHRnRHywxM+nJU1L0sTEhPr9flO7XpHBYFC8hragFxV6UaEXnzdOvXATC/62N0jaI2lfRNw/bPterxfctrc96EWFXlToRWVyx4yO7NpeugzZPhARvWHbNXFWjCU9KGl+lFAHAKyuJtbYr5F0i6RrbR9cfNzQwLgAgBWovcYeEX+Q1MzZ/QCA2rilAAAkQ7ADQDLcKwboqGz3R0GFGTvQUdnuj4IKwQ4AyRDsAJAMa+zoFNaV0QXM2NEprCujCwh2AEiGYAeAZAh2AEiGYAeAZAh2AEiGYAeAZNKex875ygC6Ku2MnfOVAXRV2mAHgK4i2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJJpJNhtP2T7mO3XmhgPALByTc3YH5a0raGxAAA1NBLsEfG8pPeaGAsAUM/6tdqR7WlJ05I0MTGhfr+/Vrv+v9pQQxsMBgN6cRJ6UaEXlXHqxZoFe0TslrRbknq9XkxNTa3Vrpe2d0bFa2iJfr9PL/6L90WFXlTGrBecFQMAyRDsAJBMU6c7PibpBUkX2T5q+7YmxgUAnLpG1tgj4uYmxgEA1MdSDAAks2ZnxQBAKZfe+6ze/+iTWmNM7pip9fqzTt+gV37yjVpjjIpgB5De+x99oiO7tq/49U2cElz3g+FUEOwdYLuRcSKikXEArK6xDfau/WpVx7BAntwxU2s2A6BdxjbYu/arFUbDBz4wxsEOLIUPfIDTHQEgHYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGe4VAyTFDdG6i2AHkuKGaN3FUgwAJMOMHUB6Z168Q195ZEe9QR6pW4Mkrc0ftCHYE2AtFVjeh/O7OrUsRbAnwFoqgJOxxg4AyTBjB5Lq2royKgQ7kFTX1pVRYSkGAJIh2AEgGYIdAJIh2AEgGYIdAJJpJNhtb7P9hu3DtmueXwUAqKN2sNteJ+kBSddL2irpZttb644LAFiZJmbsV0o6HBFvRsTHkh6XdGMD4wIAVqCJYN8s6e2Tnh9d/B4AoIAmrjz1Et+L/9nInpY0LUkTExPq9/u1d1xnjMFgULyGJtGLCr2o0ItKp3oREbUekq6WtO+k5zsl7VzuNVdccUXUdf7de2q9fnZ2tngNTaEXFXpRoReVLL2QNBcj5HITSzEvSbrQ9gW2T5N0k6SnGxgXALACtZdiIuKE7dsl7ZO0TtJDEXGodmVDcOc6AFhaI3d3jIhnJD3TxFij4s51ALA0rjwFgGQIdgBIhmAHgGQIdgBIhj+NlwBnCAE4GcGeAGcIVfiQAwh2JMOHHMAaOwCkQ7ADQDIEOwAkQ7ADQDJjffC09kGqvfVef9bpG+rtHwBWwdgGe50zH6SFD4W6YwBAG7EUAwDJEOwAkAzBDgDJEOwAkAzBDgDJEOwAkAzBDgDJjO157ABwKrp0QSPBDiC9rl3QyFIMACRDsANAMgQ7ACSTdo3d9vBt7hs+TkQ0UA0ArJ20M/aIWPYxOzs7dBtCHcA4ShvsANBVBDsAJEOwA0AyBDsAJEOwA0AytYLd9ndtH7L9qe1eU0UBAFau7nnsr0n6jqRfNlALaujSDY4ALK9WsEfEvDTaxUBYPV27wRGA5aW98hQAv8l11dBgt/2cpHOX+NE9EfHUqDuyPS1pWpImJibU7/dHfemqGAwGxWtok0y9qPNvaep90YZ+PrxtY63X37r3eO0xpHb0ognj9O8YGuwRcV0TO4qI3ZJ2S1Kv14upqakmhl2xfr+v0jW0xt6ZPL3YO6Nb9x6vMYAl1Xn9wiw1RT8zvS/qGrNesBSDVDjeANQ/3fHbto9KulrSjO19zZQFAFipumfFPCnpyYZqAQA0gCtPASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASAZgh0AkiHYASCZ9aULAFCG7eHb3Dd8nIhooJqysvWCGTvQURGx7GN2dnboNm0Jsrqy9YJgB4BkWIpBp2T7lRtYSq0Zu+2f2n7d9qu2n7R9dlOFAash26/cwFLqLsXsl3RJRHxV0l8l7axfEgCgjlrBHhHPRsSJxad/lLSlfkkAgDqaPHj6A0m/a3A8AMAKDD14avs5Secu8aN7IuKpxW3ukXRC0qPLjDMtaVqSJiYm1O/3V1JvYwaDQfEa2oReLOB9UaEXlXHrheseCLL9fUk/lPT1iPjnKK/p9XoxNzdXa7919ft9TU1NFa2hLSZ3zOjIru2ly2gF3hcVelFpSy9sH4iI3rDtap3uaHubpLslfW3UUAcArK66a+w/l3SmpP22D9r+RQM1AQBqqDVjj4gvN1UIAKAZ3FIAAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgGYIdAJIh2AEgmfWlC8Dqsz18m/uGjxMRDVQDYLUxY++AiFj2MTs7O3QbQh0YHwQ7ACRDsANAMgQ7ACRDsANAMgQ7ACRDsANAMgQ7ACRDsANAMi5x4Yntv0t6a813/HmbJL1buIa2oBcVelGhF5W29OL8iDhn2EZFgr0NbM9FRK90HW1ALyr0okIvKuPWC5ZiACAZgh0AkulysO8uXUCL0IsKvajQi8pY9aKza+wAkFWXZ+wAkFIng932Nttv2D5se0fpekqx/ZDtY7ZfK11LabbPsz1re972Idt3lK6pFNtftP0n268s9uLe0jWVZnud7T/b3lO6llF0Lthtr5P0gKTrJW2VdLPtrWWrKuZhSdtKF9ESJyTdFREXS7pK0o86/L74l6RrI+JSSZdJ2mb7qsI1lXaHpPnSRYyqc8Eu6UpJhyPizYj4WNLjkm4sXFMREfG8pPdK19EGEfFORLy8+PWHWvhPvLlsVWXEgsHi0w2Lj84ejLO9RdJ2Sb8qXcuouhjsmyW9fdLzo+rof2AszfakpMslvVi2knIWlx4OSjomaX9EdLYXkn4m6ceSPi1dyKi6GOxL/WXnzs5G8Hm2z5D0hKQ7I+KD0vWUEhH/jojLJG2RdKXtS0rXVILtb0o6FhEHStdyKroY7EclnXfS8y2S/laoFrSI7Q1aCPVHI+K3petpg4j4h6S+unss5hpJ37J9RAvLttfa/nXZkobrYrC/JOlC2xfYPk3STZKeLlwTCrNtSQ9Kmo+I+0vXU5Ltc2yfvfj16ZKuk/R62arKiIidEbElIia1kBW/j4jvFS5rqM4Fe0SckHS7pH1aOED2m4g4VLaqMmw/JukFSRfZPmr7ttI1FXSNpFu0MCM7uPi4oXRRhXxJ0qztV7UwEdofEWNxmh8WcOUpACTTuRk7AGRHsANAMgQ7ACRDsANAMgQ7ACRDsANAMgQ7ACRDsANAMv8BF+W5eLfWplAAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1b233828>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1500) #generación aleatoria números\n",
"dfb = pd.DataFrame(np.random.randn(10,5)) #DataFrame de dimensiones 10x5\n",
"dfb.boxplot(return_type='axes') #Grafico de caja de cada categoría.\n",
"dfb.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Tomemos los datos del archivo `Automobile_data.csv` para crear un gráfico de caja de 3 variables que definen las dimensiones de los automóviles. "
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1a1b41bcc0>"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD/CAYAAAD4xAEfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAFoZJREFUeJzt3X20VXWdx/H3R4QgQbTUW6aAjj0QGT7cNTM55FzDmNKxUptJRiGNwoeVpcvVQqUHrYVZVq6eSHEYkUl0psZm8iFAklOSZgFKaZSjjoqpaSrgUTKB7/yx963D6T6ce86+nHvO7/Na66x79/799t6/fX/3nM/ZD+d3FBGYmVl6dml2A8zMrDkcAGZmiXIAmJklygFgZpYoB4CZWaIcAGZmiXIAmJklygFgZpYoB4CZWaJ2bXYD+rLXXnvFhAkTmt2MQfPCCy+w2267NbsZVif3X+tq975bs2bN7yNi7/7qDekAmDBhAqtXr252MwZNqVSiq6ur2c2wOrn/Wle7952kR2qp51NAZmaJcgCYmSXKAWBmligHgJlZohwAZmaJcgCYmSXKAWBmligHgJlZoob0B8FanaSG1+HvbDazweIjgEEUEX0+xs+5qd86ZmaDxQFgZpYoB4CZWaIcAGZmiXIAmJklygFgZpaofgNA0hck3Sdps6THJV0l6VVVdWZKelDSi5LuknR4VXmnpJ/l5Q9KOqXoHTEzs4Gp5QhgG3AK8GpgMrAfcHV3oaQpwLeAM4E9gf8CbpG0e14+FvhBPn9P4AzgCklvK243zMxsoPoNgIi4MCLujoiXI+Jp4BtAV0WVjwA3RMTyiHgJuAx4CTg+Lz8B2AJ8MSJeiohbge8BswvcDzMzG6B6Pgk8FfhFxfRkYFH3RESEpLvz+d3la2PHTzWtBWb0tHJJs8nDoaOjg1KpVEcTW0e77187K5fL7r8W5b7LDCgAJJ1I9o7/7ytmjwE2VVXdCOxeY/kOImIBsACgs7Mz2vl7O1l6c1t/L2m7a/fvlW1n7rtMzXcBSfon4CrgPRGxtqLoeWBsVfU9gM01lpuZWRPUFACSTgOuBI6LiJVVxeuAwyrqCjgkn99dfmjVModWlJuZWRPUchvox4AvAf8QET/pocpVwAmSpkoaAZwHjCS70Ev+85WSPiFphKSpZBeGFxSyB2ZmVpdargF8FdgKrKwc3jgiRuc/V0k6iywIXgv8EjgmIjbn5RslHQN8E/gs8ARwRkTcWeSOmJnZwPQbABHR76D2EbEYWNxH+c+Bvx5Y08zMbDB5KAgzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMElXPl8IbMPni5Wza8nLD65lw/s0NLT921HDWfWZaw+0ws/Q4AOq0acvLPHzpsQ2to4gvpm40QMwsXT4FZGaWKAeAmVmiHABmZolyAJiZJaqmAJB0kqTbJW2WtLWq7EJJ5apHSPpaRZ2HJf2hqs7BRe+MmZnVrtYjgOeA+cA51QURcUlEjO5+AIcCAXy7quqHK+tFxC8barmZmTWkpttAI2IZgKSuGqqfDtwTET9roF1mZjbICr0GIOkVwKnAFT0Uf0XSs5LukXR6kds1M7OBK/qDYO8HRgBLquZ/EFgDvAR0AddLIiKurF6BpNnAbICOjg5KpVLBTSxOo20rl8uF7N9Q/hu1s6L6z3Y+912m6AA4Hbg2IsqVMyPiRxWTt0r6CnAK8BcBEBELgAUAnZ2d0egnZQfN0psb/hRvEZ8ELqIdVp9C+s+awn2XKSwAJL0ZeDtwdg3VtwMqatvNMGbi+Rx8zfmNr+iaRtsB0NiQFGaWppoCQNIwYDjZ6R0kjcyLXoqIyH8/HfhpRKyrWnY8cCBwJ/AyMAU4F/hcw61voufXX+qxgMyspdV6BDADuLpiekv+8wDgYUmj8jrn9rDsbsBXgIPIbg99FPhsRHyjrhabmVkhar0NdBGwqI/yLcCrein7FdlnA8zMbAjxUBBmZolyAJiZJcoBYGaWKAeAmVmiHABmZonydwI3oJB78Jc2/qXwZmb1cADUqdEPgUEWIEWsx8ysHj4FZGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiagoASSdJul3SZklbq8q6JIWkcsXjjqo6B0laIekFSY9JOq/InTAzs4Gr9fsAngPmA6OABT2Ub4uI0T0tKGkYcCOwAngP8CZgqaTHIuI/Bt5kMzMrQk1HABGxLCKuAx6qYxtHAuOBCyLixYhYC1wJnFHHuszMrCBFXQMYJmmDpCcl3SxpckXZZOD+iChXzFubzzczsyYp4ishfw0cAtwHjAbmALdJOjgiHgfGAJuqltkI7N7TyiTNBmYDdHR0UCqVCmji0NXu+9fOyuWy+69Fue8yDQdARDwJPJlPbgQukPR+4N3AQuB5YGzVYnsAm3tZ3wLy6wydnZ3R1dXVaBOHrqU309b71+ZKpZL7r0W57zKDdRvodkD57+uAN0jaraL80Hy+mZk1Sa23gQ6TNBIYkU+PzB+S9I78Ns9dJI2WdBHQASzLF/8x8AhwiaRRkg4BTie7EGxmZk1S6xHADGAL2Yv6sPz3LWR390wGfkh2quch4G+Bd0bEBoCI2AYcB7wFeAa4BbgsIq4vbjfMzGygaroGEBGLgEW9FF+eP/pa/gFg6kAaZmZmg8tDQZiZJaqI20CtF5L6r/OFvssjoqDWmJntyEcAgygienwsWbKESZMmscsuuzBp0iSWLFnSa10zs8HiI4Cd7LrrrmPu3LksXLiQbdu2MWzYMGbNmgXA9OnTm9w6M0uJjwB2snnz5rFw4UKOOuoodt11V4466igWLlzIvHnzmt00M0uMA2AnW79+PVOmTNlh3pQpU1i/fn2TWmRmqXIA7GQTJ05k1apVO8xbtWoVEydObFKLzCxVDoCdbO7cucyaNYuVK1eydetWVq5cyaxZs5g7d26zm2ZmifFF4J2s+0Lv2Wefzfr165k4cSLz5s3zBWAz2+kcAE0wffp0pk+f7hEJzaypfArIzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMElVTAEg6SdLtkjZL2lpVdoyk2yT9XtJzeb23V9UJSS9KKlc8xha5I2ZmNjC1HgE8B8wHzumhbE/g68BBwN7AEuAHkvavqjctIkZXPDbV22gzM2tcTaOBRsQyAEldPZRdWzXrW5I+C3QCGxptoJmZDY7CrwFIeivwauDeqqLv5KeJ7pJ0QtHbNTOzgSn0+wAk7QN8F/hiRPxvRdHRwE/y398LXCvp+IhY2sM6ZgOzATo6OiiVSkU2cUgpl8ttvX/tzv3Xutx3GUVE7ZWzU0ArIuIvgkPSvsCtwErg7OhjxZKuAkZGxIy+ttfZ2RmrV6+uuX2txl8I09rcf62r3ftO0pqI6OyvXiGngCRNAG4HfhARH+3rxT+3HVAR2zYzs/rUdApI0jBgODAinx6ZF70EvBFYASyKiE/2sOxbgFcC9wABHAvMAE5qtPFmZla/Wo8AZgBbgGXAsPz3LcB4YA7wOuCcqvv8T86X3Ru4muxW0qeATwIfiojvF7cbZmY2ULXeBroIWNRL8Wn5o7dlVwKTBtowMzMbXB4KwswsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUTUFgKSTJN0uabOkrT2Uv0vSfZK2SLpX0rSq8oMkrZD0gqTHJJ1X1A6YmVl9aj0CeA6YD5xTXSDpQOAG4PPA2Pzn9yRNyMuHATcC64G9gfcAcyR9oMG2m5lZA2oKgIhYFhHXAQ/1UPxBYE1EfDsi/hgR1wJr8/kARwLjgQsi4sWIWAtcCZzRePPNzKxeRVwDmAysqZq3Np/fXX5/RJR7KTczsybYtYB1jAE2Vc3bCEzqp3z3nlYmaTYwG6Cjo4NSqVRAE4emcrnc1vvX7tx/rct9lykiAJ4nO/dfaQ9gc43lO4iIBcACgM7Ozujq6iqgiUNTqVSinfev3bn/Wpf7LlPEKaB1wGFV8w7N53eXv0HSbr2Um5lZE9R6G+gwSSOBEfn0yPwhYDHQKWm6pOGSpgOHA9fki/8YeAS4RNIoSYcAp5NdCDYzsyap9RTQDODqiukt+c8DIuJBSScAXwb+jexOoeMj4mGAiNgm6TiyF/xnyM7/XxYR1xfQfjMzq1NNARARi4BFfZQvBZb2Uf4AMHWAbTMzs0HkoSDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBLlADAzS5QDwMwsUQ4AM7NEOQDMzBK1axErkXQfML5i1jBgJHA4sDuwEnihovwXEXFEEds2M7P6FBIAETGpclrSPOB9EbFWUhewLSJGF7EtMzMrRuGngCTtCnwIuLLodZuZWXEKOQKo8j5gLLC4Yt4wSRuA4cAa4MKIWNfTwpJmA7MBOjo6KJVKg9DEoaFcLrf1/rU791/rct9lFBHFrlC6FXgsIk7Lp18DdAD3AaOBOWQv8AdHxON9rauzszNWr15daPuGklKpRFdXV7ObYQM0btw4NmzY8Kfp/fffn0cffbSJLbKBavfnnqQ1EdHZX71CTwFJ+itgKnBF97yIeDIi1kXE1ojYGBEXAM8C7y5y22Y7Q/WLP8CGDRsYN25ck1pkVr+irwGcDqyLiLv6qbcdUMHbNht03S/+Z555JjfeeCNnnnnmDvPNWklhASBpBHAqFe/+8/nvkHSQpF0kjZZ0EdkpoWVFbdtsZ5o5cybz589n9OjRzJ8/n5kzZza7SWZ1KfIi8AnAKODaqvmTgauBvcg+C7AWeGdE+C2TDVlS7weoixcvZvHixX8xv6dlir7GZlakwo4AIuL6iBgTEeWq+ZdHxPiI2C0i9omId0XEz4vartlgiIgeH92OOOII9j1jEUcccUSfy5gNZYNxG6hZ25o2bRrLly/njjvugDvu4PGK+WatxmMBmQ3AsmXLmDZt2p9O90hi2rRpLFvmS1rWehwAZgO0bNkytm/fzvg5N7F9+3a/+FvL8ikgS9Lki5ezacvLDa9nwvk3173s2FHDWfcZnzqy5nEAWJI2bXmZhy89tqF1NPpp0kbCw6wIDgBL0piJ53PwNec3vqJrGmkDQGMhZNYIB4Al6fn1l/oIwJLnALBkFfICvLSxawBmzeQAsCQ1+u4fsgApYj1mzeLbQM3MEuUAMDNLlAPAzCxRvgZg1oO+RgPdod4X+i73gHDNUWv/9afd+89HAGY96G000MrHypUr+61jzdFfv4yfc1NNfdzuHABmZolyAJiZJcoBYGaWKF8ENrOWMhRGcoX2GM3VAWBmLWUojOQK7TGWkwPAzFrKUBjJNWsHtPporg4AM2spQ2EkV2iPI4BCLgJLWiTpZUnlisdZVXVmSnpQ0ouS7pJ0eBHbNjOz+hR5BHBNRHy4pwJJU4BvAccDPwI+Dtwi6fURsbnANphZApo9lDe0x3DeO+sU0EeAGyJiOYCky4CPkgVCg2fizCwlHsq7OEUGwImSTgB+D/wPcHFElPOyycCi7ooREZLuzufvQNJsYDZAR0cHpVKpwCYOLeVyua33r925/1qb+664APg6MAd4GpgIXA1cBUzPy8cAm6qW2QjsXr2iiFgALADo7OyMRi/UDGVFXIiy5nH/tbClN7vvKOgicESsiYjfRcT2iLgPOBd4v6RX5FWeB8ZWLbYH4PP/ZmZNMljXALbnP7vHZF0HHNZdqGys1kOAGwZp+2aWsFqGg+5vKG/wcNA1kXSSpD3y318PfBn4fkT8Ia9yFXCCpKmSRgDnASOB7xWxfTOzSkUM5d3uL/5Q3GBwZwAPSXoBWA78FDituzAiVgFnkQXBJuCfgWN8C6iZWfMUcgooIrpqqLMYWFzE9szMrHEeDtrMLFEOADOzRDkAzMwS5QAwM0uUA8DMLFEOADOzRGkof9hB0tPAI81uxyDai2zwPGtN7r/W1e59Nz4i9u6v0pAOgHYnaXVEdDa7HVYf91/rct9lfArIzCxRDgAzs0Q5AJprQbMbYA1x/7Uu9x2+BmBmliwfAZiZJcoBMACSSpI+2cTtd0na2qztp0bSOEllSfv2UWeFpIv6WU9ImlJ4AxMi6WFJp9S57MmS1g2g/kWSVtSzrVbjABiiJJ0q6YFmtyNlEfFoRIyOiMdrqS9pQv5iv99gt81qFxHXRsTkotbXTv3sADAzS5QDoE756YHvSnoifyyQNKaiPCSdJennkp6X9FNJb6ooHyNpsaRnJT0iaaakrflpnrcBVwAH5qcgypK6Kpb9gKQHJW2S9J+V27X+STpR0m8qpj+X99eB+fTf5H/bgyrf6SlzgaTH8n67nD9/7zVk330N8Ju8zz5VUfbW3v4XrGbjJP0w/9veK+mI7gJJH8nnbZJ0t6RpFWU7HE339dyr2JYkXSLpqfxxcUVZX/3cUhwAdZA0ErgN+BVwIPBmYD/gq1VVTwVOJPvY+Qbg6xVlX82XfRNwMHAsMAwgIu4k/5rN/BTE6Igo5csNA6YBk4E3AIcCHyt0B9vfbcBBksbl00cDD+Q/u6dLQPX1llOAc4H3Aq8hG0rgyIry7tMMb8z77HMVZafS+/+C1eZDZP/rY4FbgWsAJM0G5gAnA3sCc4EbJB3Uy3p6fe5VOBJ4FNgXOA64UNLf5WV99XNLcQDU5x/JbqH9dERsiYjngE8BJ0uq/Ee6LD+P/BKwCOgEkLQL2T/rpyPiqfy7kS8cwPbPj4hyRPwO+O/u9Vpt8v5aCxwtaXdgEjAPeGde5Wigp4uAM4ErI2JNRPwR+DzwZI2b7fF/wQbkyoi4LyK2Af9KFuJjyULhsxGxLiK2R8QtwErgpOoVDOC5d39EXBERWyPiLuAe2rDPCvlO4AQdQHY4urFqfpC9M/xtPv1ERdkLQPepmr2BEew40F2tg95ti4ine1mv1W4F2Qv9M8CdwC3AlySNBt4GnNXDMvsBD3dPRMR2SbX2W2//C1a76r8hZH/HA4BvSvpaRfmuwGM9rKPW594TVdNt2WcOgPo8QvYOYVKdyz8N/BEYDzyYzxtXVWd7neu22qwArgWeBW6NiKck/RY4B3gmItZLmlC1zG+BP82TJLI+7OY+a45HgM9ExHdqqFvLc68/bdPPPgVUn5uA4ZIuzC8oSdLrJB1fy8IRsR1YAlwkae/8Iu68qmpPAvvkpyiseKuA3YEZZOeTAX4IfIKeT/8A/DswW9JhkoYD55Md8XV7muzF4fWD0mLrzeVkz6VD8ufiKElTerrQXuNzrz9t088OgDpExIvAVLKLv78GNpG9eBwygNV8nOwi0/3AvWQvQgG8lJffls/7P0kbJf19Ma03gPxc/CrgD8Av8tkryEKhtwBYTHbx9kbgd8A+wI8r1rmF7FrQdXmfzR2c1luliLgK+CJwNfAc2fPqU8DwXhbp77nX3/bapp89FtAQIemNZGHyulo/eGRmjUv5uecAaBJJBwCvBe4iuzXwamC3iPA7fbNB5Ofen/kUUPOMIhuSdhPwS+BF4F+a2iKzNPi5l/MRgJlZonwEYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmi/h9+Zf1xpiVQVgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1b2e2a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = df['length'] #Variable Largo\n",
"y = df['width'] #Variable Ancho\n",
"z =df['height'] #Variable Alto\n",
"dfbp = pd.DataFrame([x,y,z]).T #Creando un DataFrame con las dimensiones de los autosmóviles\n",
"dfbp.boxplot(fontsize=13, return_type='axes') #Gráfico de caja de las 3 variables \n",
"#Tarea!!!!! Normalice estos datos y haga el nuevo gráfico de caja"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Gráficos de barras (o histogramas)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Vamos a generar datos aleatoriamente y hacer un **gráfico de barras**."
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1a1b38bb70>"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1b245860>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(14000) #Generación de números aleatorios\n",
"pdhist = pd.Series(np.random.randn(1000)) #Serie de números aleatorios\n",
"pdhist.hist(normed=True) # Muestra las barras\n",
"pdhist.plot(fontsize=13, kind='kde') #Gráfico de barras (kde = Kernel Density Estimation plot. Haga la prueba con 'hist')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Utilicemos los datos de `Automobile_data.csv` para hacer un **gráfico de barras o histograma** de la variable `price` (precio)."
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0,0.5,'Frecuencia')"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1b61cb70>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"p = df['price'] #Seleccionamos la variable price\n",
"pdf = pd.Series(p) #Convertimos la selección en una serie de Pandas\n",
"pdf.hist(normed=True) # Muestra las barras\n",
"pdf.plot(fontsize=11, kind = 'hist') #Gráfico de barras\n",
"plt.xlabel('Precio',fontsize=13)\n",
"plt.ylabel('Frecuencia', fontsize=13)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Este **gráfico de barras** nos indica que hay un número alto de automóviles con precio menor a 10000, entre otras cosas .... ¿Qué cosas? ;)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Gráfico de dispersión\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"Este **gráfico de dispersión** muestra la relación entre las variables `tamaño del motor` y `precio`."
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0,0.5,'Precio')"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1b9705c0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"x= df['engine-size'] #Variable predictora\n",
"y= df['price'] #Variable objetivo o que deseamos predecir\n",
"plt.scatter(x, y) #Gráfico de dispersión en Matplotlib \n",
"plt.title('Gráfico de dispersión de Tamaño del motor Vs. Precio', fontsize=13)#Nombre del gráfico\n",
"plt.xlabel('Tamaño del motor', fontsize=13)#Etiquetal del eje-x\n",
"plt.ylabel('Precio', fontsize=13)#Etiqueta del eje-y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Correlación entre variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Tomememos las dos variables del ejemplo anterior..."
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'Gráfico de dispersión de Tamaño del motor Vs. Precio')"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1bd55a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"from scipy import stats\n",
"x=df['engine-size'] #Variable predictora\n",
"y= df['price'] #Variable objetivo o que deseamos predecir\n",
"slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)\n",
"line = slope*x+intercept\n",
"plt.plot(x,y,'o', x, line)\n",
"ax = plt.gca()\n",
"fig = plt.gcf()\n",
"plt.xlabel('Tamaño del motor', fontsize=9)#Etiquetal del eje-x\n",
"plt.ylabel('Precio', fontsize=9)#Etiqueta del eje-y\n",
"plt.title('Gráfico de dispersión de Tamaño del motor Vs. Precio', fontsize=13)#Nombre del gráfico\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"El gráfico de dispersión anterior revela que hay una relación lineal positiva entre el tamaño del motor y el precio del auto. Es decir, a medida que aumenta el tamaño del motor aumenta el precio."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Este gráfico de dispersión revela que hay una relación lineal negativa entre las millas que recorre el auto por combustible que usa y el precio del mismo. Es decir, mientras más millas por galón el auto es más económico. "
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'Gráfico de dispersión de Millas por galón en autopista Vs. Precio')"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1cc20400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"from scipy import stats\n",
"x=df['highway-mpg'] #Variable predictora\n",
"y= df['price'] #Variable objetivo o que deseamos predecir\n",
"slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)\n",
"line = slope*x+intercept\n",
"plt.plot(x,y,'o', x, line)\n",
"ax = plt.gca()\n",
"fig = plt.gcf()\n",
"plt.xlabel('Millas por galón en autopista', fontsize=9)#Etiquetal del eje-x\n",
"plt.ylabel('Precio', fontsize=9)#Etiqueta del eje-y\n",
"plt.title('Gráfico de dispersión de Millas por galón en autopista Vs. Precio', fontsize=13)#Nombre del gráfico\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ahora calculemos el coeficiente de correlación y el p-valor entre las variables 'Caballos de Fuerza' y 'Precio' usando 'stats.pearson()'"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.757916953745141, 1.6076704005409566e-39)"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from scipy import stats\n",
"stats.pearsonr(df['horsepower'], df['price'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Existe una fuerte correlación positiva entre las variables ya que el coeficiente de correlación es cercano a 1 y el p-valor es mucho menor que 0.001"
]
}
],
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 1
}