129 lines
4.6 KiB
Python
129 lines
4.6 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
"""Python TOTAL - Pandas.ipynb
|
||
|
|
||
|
Automatically generated by Colaboratory.
|
||
|
|
||
|
Original file is located at
|
||
|
https://colab.research.google.com/drive/1uXPQgRFyhRzarWbO9ytZ1Y2amriZgeex
|
||
|
|
||
|
# Práctica de la librería Pandas
|
||
|
|
||
|
En este notebook, se desarrollarán una serie de tareas utilizando la librería Pandas (el "Excel" de Python).
|
||
|
|
||
|
Se proponen y documentan posibles formas de resolver los ejercicios, pero pueden existir varias formas de lograr los mismos resultados.
|
||
|
|
||
|
Siempre es una buena idea verificar la [Documentación Oficial de Pandas](https://pandas.pydata.org/pandas-docs/stable/), donde es posible encontrar todo tipo de información referida a esta librería. Y si te quedas trabado, busca en Google "como hacer [algo] con Pandas". Hay enormes probabilidades de que esa pregunta ya haya sido respondida!
|
||
|
"""
|
||
|
|
||
|
# Importamos Pandas
|
||
|
import pandas as pd
|
||
|
|
||
|
# Creamos una serie de números y hallamos su media
|
||
|
numeros = pd.Series([1,2,3,5,67,35,235,62])
|
||
|
numeros.mean()
|
||
|
|
||
|
# Hallamos la suma de dichos números
|
||
|
numeros.sum()
|
||
|
|
||
|
# Creamos una SERIE de tres colores diferentes
|
||
|
colores = pd.Series(['rojo','amarillo','verde'])
|
||
|
|
||
|
# Visualizamos la serie creada
|
||
|
colores
|
||
|
|
||
|
# Creamos una serie con tipos de autos, y la visualizamos
|
||
|
tipos_autos = pd.Series(['sedan', 'SUV', 'Pick up'])
|
||
|
tipos_autos
|
||
|
|
||
|
# Combinamos las series de tipos de autos y colores en un DATAFRAME
|
||
|
tabla_autos = pd.DataFrame({'Tipo de Auto':tipos_autos, 'Color':colores})
|
||
|
tabla_autos
|
||
|
|
||
|
# Conectamos el cuaderno actual con nuestro Drive
|
||
|
from google.colab import drive
|
||
|
drive.mount('/content/drive')
|
||
|
|
||
|
# Importar "ventas-autos.csv" y convertirlo en un nuevo DATAFRAME
|
||
|
ventas_autos = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/ventas-autos.csv')
|
||
|
ventas_autos
|
||
|
|
||
|
"""Este será nuestro "Dataframe de Flujo Vehicular"
|
||
|
"""
|
||
|
|
||
|
# Exportar el Dataframe como un archivo CSV a mi carpeta "/content/drive/MyDrive/Colab Notebooks/pruebas/"
|
||
|
ventas_autos.to_csv('/content/drive/MyDrive/Colab Notebooks/este_archivo.csv')
|
||
|
|
||
|
# Analicemos los tipos de datos disponibles en el dataset de ventas autos
|
||
|
ventas_autos.dtypes
|
||
|
|
||
|
# Apliquemos estadística descriptiva (cantidad de valores, media, desviación estándar, valores mínimos y máximos, cuartiles) al dataset
|
||
|
ventas_autos.describe()
|
||
|
|
||
|
# Obtenemos información del dataset utilizando info()
|
||
|
ventas_autos.info()
|
||
|
|
||
|
# Listamos los nombres de las columnas de nuestro dataset
|
||
|
ventas_autos.columns
|
||
|
|
||
|
# Averiguamos el "largo" de nuestro dataset
|
||
|
len(ventas_autos)
|
||
|
|
||
|
# Mostramos las primeras 5 filas del dataset
|
||
|
ventas_autos.head()
|
||
|
|
||
|
# Mostramos las primeras 7 filas del dataset
|
||
|
ventas_autos.head(7)
|
||
|
|
||
|
# Mostramos las últimas 3 filas del dataset
|
||
|
ventas_autos.tail(3)
|
||
|
|
||
|
# Utilizamos .loc para seleccionar la fila de índice 3 del DataFrame
|
||
|
ventas_autos.loc[3]
|
||
|
|
||
|
# Utilizamos .iloc para seleccionar las filas 3, 7 y 9
|
||
|
ventas_autos.iloc[[3,7,9]]
|
||
|
|
||
|
"""En la documentación podrás observar la diferencia entre el funcionamiento de [.loc](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html) e [.iloc](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html)."""
|
||
|
|
||
|
# Seleccionar la columna "Kilometraje"
|
||
|
ventas_autos['Kilometraje']
|
||
|
|
||
|
# Encontrar el valor medio de la columnas "Kilometraje"
|
||
|
ventas_autos['Kilometraje'].mean()
|
||
|
|
||
|
# Seleccionar aquellas columnas que tengan valores superiores a 100,000 kilómetros en la columna Kilometraje
|
||
|
ventas_autos[ventas_autos['Kilometraje'] > 100000]
|
||
|
|
||
|
# Creamos una tabla cruzada de doble entrada entre Fabricante y cantidad de puertas
|
||
|
pd.crosstab(ventas_autos['Fabricante'], ventas_autos['Puertas'])
|
||
|
|
||
|
# Agrupamos las columnas por fabricante y buscandos el valor medio de las columnas numéricas
|
||
|
ventas_autos.groupby(['Fabricante']).mean()
|
||
|
|
||
|
# Commented out IPython magic to ensure Python compatibility.
|
||
|
# Importamos Matplotlib y creamos un gráfico con los valores de la columna Kilometraje
|
||
|
import matplotlib as plt
|
||
|
# %matplotlib inline
|
||
|
|
||
|
ventas_autos['Kilometraje'].plot()
|
||
|
|
||
|
# Puede que un gráfico más apropiado en este caso sea un histograma?
|
||
|
ventas_autos['Kilometraje'].hist()
|
||
|
|
||
|
# Intentamos graficar la columna de precios
|
||
|
ventas_autos['Precio (USD)'].plot()
|
||
|
|
||
|
"""No funcionó, verdad? Alguna idea de por qué esto puede ocurrir?
|
||
|
|
||
|
Una pista es buscar: "cómo convertir strings de Pandas a números"
|
||
|
|
||
|
[Aqui hay un enlace a StackOverflow referido a este tema](https://stackoverflow.com/questions/44469313/price-column-object-to-int-in-pandas).
|
||
|
"""
|
||
|
|
||
|
# Elimina la puntuación de la columna de precios
|
||
|
ventas_autos['Precio (USD)'] = ventas_autos['Precio (USD)'].str.replace('[\$\.\,]', '')
|
||
|
ventas_autos['Precio (USD)'] = ventas_autos['Precio (USD)'].astype(int)/100
|
||
|
|
||
|
ventas_autos
|
||
|
|
||
|
ventas_autos['Precio (USD)'].plot()
|