pandas: Series y DataFrames
En el mundo real, no trabajás con bases de datos en abstracto. En Python trabajás con DataFrames y Series. Entender la diferencia entre ambos es la clave para no trabarte cuando intentes aplicar funciones avanzadas más adelante.
Teoría: Anatomía de pandas
Todo el ecosistema de análisis de datos de Python se sostiene sobre dos tipos de objetos creados por la librería principal:
- La Serie (
pd.Series): Es un arreglo unidimensional. En lenguaje de negocios, imagínalo simplemente como una sola columna de Excel, pero acompañada de un índice. - El DataFrame (
pd.DataFrame): Es un arreglo bidimensional. Es una tabla entera, compuesta por múltiples columnas alineadas. En esencia, un DataFrame es, ni más ni menos, que "un rejunte" o diccionario compuesto de múltiples Series compartiendo el mismo índice.
El Índice: El DNI de los datos
Tanto las Series como los DataFrames comparten un atributo mágico que las simples Listas de Python no tienen:
el índice (Index). En las listas de Python ([10, 20, 30]) la posición 0,
1, 2 está implícita. En pandas, el índice es una capa visible al lado de la tabla que dice exactamente quién es
esa fila. Puede ser un número 0, 1, 2, pero ¡también puede ser una fecha 2024-01-01 o
un ID de Cliente CLI-892!
Series en profundidad
Creemos una Serie para los precios de 3 acciones en la bolsa local.
Hacé clic en ▶ Ejecutar
Series con Índice Personalizado
La magia ocurre cuando le asignamos las etiquetas (los nombres de las acciones) al índice. Ahora podemos extraer valores usando su nombre, y no solo porque "esté en la posición 1".
Hacé clic en ▶ Ejecutar
{'YPFD': 1200, 'GGAL': 3450}), pandas automáticamente usa las claves como índices y los valores
como la data. Es una construcción súper ágil.
DataFrames en profundidad
Un DataFrame se usa cuando necesitás ver múltiples dimensiones. Para armarlo manualmente partimos de algo que en Análisis de Datos llamás "esquema columnar" (Dictionary of Lists).
Hacé clic en ▶ Ejecutar
.shape no lleva
paréntesis ni recibe argumentos. df.shape() fallará siempre. Es una propiedad del objeto,
no un método/acción. Esto significa que la forma de la tabla ya está calculada y guardada, es inerte.Extrayendo partes de un DataFrame
Acá es donde conectás ambos conceptos. Cuando extraés una sola columna de un DataFrame, pandas evalúa: "¿Una columna? Eso es un arreglo unidimensional" y **automáticamente te devuelve una Serie**.
Hacé clic en ▶ Ejecutar
Ejercicios interactivos
Estos ejercicios están pensados para asentar la creación de estructuras y extracción básica.
Ejercicio 1: Crear una Serie desde un Diccionario
Creá una serie desde un diccionario donde las claves sean los días de la semana y los valores la venta. La
venta debe ser tu_dicc = {"Lunes": 10, "Martes": 15, "Miercoles": 20}. Imprimila por consola. La
salida debe mostrar el index Miercoles y el valor 20 en la misma línea.
Hacé clic en ▶ Ejecutar
Ejercicio 2: Creación de Dataframe y Extracción de Atributos
Utilizá las listas proporcionadas para armar el DataFrame de Clientes. El diccionario debe llamarse
datos y tener las llaves "Usuario", "Edad", "Activo".
Luego instancialo como dataframe en la variable df. Por último, imprimí exclusivamente la
forma del DataFrame usando la propiedad correspondiente. Tiene que decir (3, 3).
Hacé clic en ▶ Ejecutar
Ejercicio 3: Extrayendo una Serie desde un Dataframe y calculando max()
Dado el DataFrame listo de métricas de marketing, extraé usando corchetes ["columna"] la columna
"CTR" (Click Through Rate) para tener la Serie individual, y luego usá sobre ella el método
.max(). Modificalo en un print de forma que el resultado contenga el número `15.5`.
Hacé clic en ▶ Ejecutar
Reflexión de Negocios
Saber armar esquemas con diccionarios de Python a memoria de Pandas (como hoy) se usa todos los días cuando hacemos peticiones a una API y nos responde un `JSON`. Extraer todo este JSON, pasarlo a Listas, y meterlo a un DataFrame es una tarea clave para un Data Analyst y sobre todo para posiciones orientadas a automatización de procesos RPA e Ingeniería de Datos.
En la siguiente lección (03 · pandas: lectura de datos) pasaremos al santo grial del día a día: cómo importar miles de registros de archivos CSV externos que no están directamente en la memoria.