Módulo 2: Exploración y selección de datos en DataFrames
Objetivos del módulo
Al finalizar estos módulos serás capaz de:
- Explorar rápidamente un DataFrame
- Entender la estructura interna de los datos
- Identificar tipos de datos y columnas
- Seleccionar filas y columnas de distintas formas
- Filtrar datos usando condiciones lógicas
Usaremos el siguiente DataFrame durante todo el módulo:
import pandas as pd
data = {
"estacion_id": ["EST-01", "EST-02", "EST-03", "EST-04", "EST-05", "EST-06", "EST-07", "EST-08"],
"region": ["Norte", "Norte", "Centro", "Sur", "Centro", "Centro", "Sur", "Centro"],
"temperatura_c": [18.5, 21.0, 19.8, 16.2, 20.1, 12.3, 23.4, 24.2],
"humedad_pct": [72, 65, 80, 90, 68, 80, 70, 65],
"velocidad_viento_kmh": [12.4, 8.1, 5.0, 20.3, 10.7, 12.2, 31.4, 5.2],
"lluvia_mm": [0.0, 1.2, 0.0, 12.5, 0.8, 1.6, 7.8, 12.3],
"sensor_activo": [True, True, False, True, True, True, True, False]
}
df = pd.DataFrame(data)
df
DataFrame resultante:
| estacion_id | region | temperatura_c | humedad_pct | velocidad_viento_kmh | lluvia_mm | sensor_activo | |
|---|---|---|---|---|---|---|---|
| 0 | EST-01 | Norte | 18.5 | 72 | 12.4 | 0.0 | True |
| 1 | EST-02 | Norte | 21.0 | 65 | 8.1 | 1.2 | True |
| 2 | EST-03 | Centro | 19.8 | 80 | 5.0 | 0.0 | False |
| 3 | EST-04 | Sur | 16.2 | 90 | 20.3 | 12.5 | True |
| 4 | EST-05 | Centro | 20.1 | 68 | 10.7 | 0.8 | True |
| 5 | EST-06 | Centro | 12.3 | 80 | 12.2 | 1.6 | True |
| 6 | EST-07 | Sur | 23.4 | 70 | 31.4 | 7.8 | True |
| 7 | EST-08 | Centro | 24.2 | 65 | 5.2 | 12.3 | False |
Exploración de DataFrames
Explorar un DataFrame es el primer paso obligatorio antes de analizar o limpiar datos.
A continuación veremos las funciones básicas para la exploración previa.
head()
Muestra las primeras filas del DataFrame (por defecto 5). Es útil para echar un primer vistazo a la estructura sin tener que cargar todas las filas (muy importante si los datos tienen cientos de filas).
df.head()
Resultado:
| estacion_id | region | temperatura_c | humedad_pct | velocidad_viento_kmh | lluvia_mm | sensor_activo | |
|---|---|---|---|---|---|---|---|
| 0 | EST-01 | Norte | 18.5 | 72 | 12.4 | 0.0 | True |
| 1 | EST-02 | Norte | 21.0 | 65 | 8.1 | 1.2 | True |
| 2 | EST-03 | Centro | 19.8 | 80 | 5.0 | 0.0 | False |
| 3 | EST-04 | Sur | 16.2 | 90 | 20.3 | 12.5 | True |
| 4 | EST-05 | Centro | 20.1 | 68 | 10.7 | 0.8 | True |
Se puede especificar en el head() el número de filas a mostrar.
df.head(2)
Resultado:
| estacion_id | region | temperatura_c | humedad_pct | velocidad_viento_kmh | lluvia_mm | sensor_activo | |
|---|---|---|---|---|---|---|---|
| 0 | EST-01 | Norte | 18.5 | 72 | 12.4 | 0.0 | True |
| 1 | EST-02 | Norte | 21.0 | 65 | 8.1 | 1.2 | True |
tail()
Muestra las últimas filas del DataFrame (por defecto 5). Al igual que al head(), le podemos especificar el número de filas.
df.tail(3)
Resultado:
| estacion_id | region | temperatura_c | humedad_pct | velocidad_viento_kmh | lluvia_mm | sensor_activo | |
|---|---|---|---|---|---|---|---|
| 5 | EST-06 | Centro | 12.3 | 80 | 12.2 | 1.6 | True |
| 6 | EST-07 | Sur | 23.4 | 70 | 31.4 | 7.8 | True |
| 7 | EST-08 | Centro | 24.2 | 65 | 5.2 | 12.3 | False |
shape()
Devuelve una tupla con las dimensiones del dataframe (filas, columnas).