Ir al contenido
wannacode

La primera tabla

En resumen: pd.read_csv carga un archivo CSV en una tabla (un DataFrame), y head, shape, info y describe muestran las filas, el tamaño, los tipos y los resúmenes antes de calcular nada.

Problema

«¿Cuántos pedidos tenemos?»

El gerente te manda orders.csv y pregunta cuántos pedidos hay y cuál es el promedio. La tentación es abrir el archivo, escribir mean() y devolver un número.

Pero todavía no sabes qué hay en el archivo. ¿Una fila es un pedido o una línea de un pedido? ¿Hay celdas vacías? ¿Los números son números o texto como «1,60 €»? La media de la columna equivocada da una respuesta equivocada que parece perfectamente seria.

Por eso el análisis empieza con un primer vistazo: qué hay en la tabla, antes de calcular con ella.

La idea

La tabla: read_csv

CSV es un archivo de texto con una tabla: la primera línea tiene los nombres de las columnas, y cada línea siguiente es un registro, con los valores separados por comas. Casi todos los sistemas te dan uno: la tienda, el banco, Excel.

pandas es la biblioteca de Python para tablas. pd.read_csv lee el archivo y devuelve un DataFrame: una tabla con nombres de columnas y, a la izquierda, un número para cada fila (el índice). head() muestra las primeras cinco filas:

Pythondatos: las tablas de la tienda

import pandas as pd es la costumbre de todos: pandas se escribe pd. El archivo orders.csv está junto al código, con las demás tablas de la tienda: products.csv, customers.csv, order_items.csv, categories.csv y reviews.csv.

La última línea no tiene print, y aun así sale la tabla. Así funciona un notebook (Jupyter), donde escriben los analistas: el valor de la última línea se muestra solo.

La idea

Cuántos y qué: shape e info

shape es un par (filas, columnas). info() describe cada columna: cuántos valores tiene y de qué tipo:

Pythondatos: las tablas de la tienda

Léelo de arriba abajo:

  • 25 filas, 6 columnas. Ninguna columna está completamente vacía.
  • category_id tiene 24 valores de 25: un producto no tiene categoría.
  • Los tipos: int64 son enteros, float64 decimales, str texto. La fecha added_at es texto: pandas no reconoce una fecha por sí solo. Ya llegaremos a eso.
1. La columna category_id contiene números enteros (3, 4, 5…). ¿Por qué pandas la lee como float64?
Más precisamente, para curiosos

El tipo str es nuevo en pandas 3 (2026). En versiones anteriores y en muchos artículos el texto es object. El significado es el mismo: la columna contiene cadenas.

La idea

Los números en resumen: describe

describe() resume una columna numérica: cuántos valores, la media (mean), la dispersión (std), el más pequeño, el más grande y los tres cuartos (25 %, 50 %, 75 %):

Pythondatos: las tablas de la tienda

El precio medio es 7,04 €, y el 50 % (la mediana, el precio de en medio) es 2,80 €. Es una gran diferencia: unos pocos productos caros (el juego de cuchillos de 39 €, la sartén de 24,90 €) suben la media. Dile al gerente que «nuestro producto cuesta 7 € en promedio» y se imaginará otra tienda.

Si usar la media o la mediana es cosa del módulo de estadística. Por ahora la regla es: mira las dos.

Míralo

Qué producto no tiene categoría

info() dijo que falta una categoría. Aquí está el producto:

Pythondatos: las tablas de la tienda

La tarjeta de regalo no es comida ni es para el hogar. El hueco es información real, no un error del archivo. Su stock es 999: un marcador que significa «sin límite». Suma el stock del almacén y falseará el resultado.

Eso te da el primer vistazo: antes de la primera suma sabes qué no es lo que parece.

Pruébalo

Las líneas de pedido

¿Cuántas filas tiene order_items.csv y cuántas unidades de un producto hay en una línea, en promedio? Ponlas en rows y avg_qty.

Pythondatos: las tablas de la tienda

Ejercicio

Los pedidos más recientes

head() tiene un hermano: tail() muestra las últimas filas. Los dos aceptan cuántas filas quieres: head(10).

El archivo de pedidos está ordenado por fecha. Pon los últimos 4 pedidos en latest.

Pythondatos: las tablas de la tienda
Más precisamente, para curiosos

Un archivo exportado de Excel en muchos idiomas europeos usa punto y coma entre los valores y una coma en los números: 1,60. Entonces es pd.read_csv('file.csv', sep=';', decimal=','). El texto de programas antiguos a veces está en una codificación regional como Windows-1251: encoding='cp1251'. Una hoja de Excel se lee directamente con pd.read_excel, y una tabla de una base de datos con pd.read_sql (mira el curso Bases de datos y SQL).

Test

Ponte a prueba

1. ¿Qué devuelve orders.shape para una tabla con 60 filas y 4 columnas?
2. El precio medio de los productos es 7,04 € y la mediana es 2,80 €. ¿Qué te dice eso?
3. ¿Qué método te dice cuántos valores faltan en cada columna y de qué tipo es?
4. La última línea del código es orders.head(), sin print. ¿Qué ves?

Creado por Ivo Gergov como parte de la campaña de Evo Tech por una educación accesible en programación ·