import json
import pandas as pd
df = pd.read_csv("data/covid19/casos_hosp_uci_def_sexo_edad_provres.csv")
# cargamos el diccionario de códigos de provincias
with open("data/covid19/cod_provinces.json") as f:
cod_pro_dict = json.load(f)
# Convertimos los Ids de provincias a códigos del INE (necesario para el merge con población)
df['provincia_iso'] = df['provincia_iso'].map(cod_pro_dict)
df.head()Introducción a pandas
En este notebook introducimos los conceptos básicos necesarios para trabajar con datos tabulares en Python.
Trabajaremos con pandas, una de las librerías más utilizadas para análisis de datos.
Objetivos
- Leer datos desde ficheros
- Entender la estructura de un DataFrame
- Acceder a filas y columnas
- Filtrar datos
- Agregar información
- Combinar datasets (merge)
- Reestructurar datos (pivot)
Leer datos
print("Dataframe shape:", df.shape)
print()
for i in df.columns:
print(f"- {i}")
print()
df.head()Selección de columnas
# Seleccionamos una columna
df["num_casos"].head()# Seleccionamos varias columnas
df[["provincia_iso", "num_casos"]].head()Filtrado de datos
df[df["provincia_iso"] == "A"].head()df[df["num_casos"] > 100].head()Indexado
Existe distintas formas de indexado
# Un alemento específico
df.iloc[0]
# Un subconjunto de filas
df.iloc[0:5]Agrupación de datos
df.groupby("provincia_iso")["num_casos"].sum().head()Agrupación por varias columnas
df.groupby(["fecha", "provincia_iso"])["num_casos"].sum().head()Reset index
df_agg = df.groupby(["fecha", "provincia_iso"])["num_casos"].sum().reset_index()
df_agg.head()Combinar datasets (merge)
pop = pd.read_parquet("data/covid19/provincias.parquet")
pop = pop[["name", "total"]].rename(columns={"total": "poblacion"})
covid_total = df.groupby("provincia_iso")["num_casos"].sum().reset_index()
merged = covid_total.merge(pop, left_on="provincia_iso", right_index=True)
merged.head()
covid_totalReestructurar datos (pivot)
pivot = df_agg.pivot(
index="fecha",
columns="provincia_iso",
values="num_casos"
)
pivot.head()Para una introducción más profunda revisar los siguientes recursos:
- https://pandas.pydata.org/docs/user_guide/10min.html
- https://github.com/mrdbourke/zero-to-mastery-ml/blob/master/section-2-data-science-and-ml-tools/introduction-to-pandas.ipynb
- https://colab.research.google.com/github/waterhackweek/learning-resources/blob/master/notebooks/pandas-intro.ipynb