Cargar datos reales

Mapa conceptual
- Python para Datos
- Entorno
- pip
- venv
- Reproducibilidad
- Funcional
- Comprensiones
- Lambda
- map filter
- Calidad
- try except
- pytest
- Asserts
- NumPy
- Arrays
- Broadcasting
- Indexacion
- Pandas
- DataFrame
- Groupby
- Merge Join
- Entorno
read_csv, el caballo de batalla
pd.read_csv es la puerta de entrada más usada. Lee un archivo de texto separado por comas y lo convierte en DataFrame. Su potencia está en los parámetros: permiten decirle cómo está hecho el archivo en vez de suponerlo.
Parámetros que salvan el día
- sep: el separador real (coma, punto y coma o tabulador).
- header: qué fila contiene los nombres, o None si no hay cabecera.
- encoding: casi siempre utf-8; si ves acentos rotos, prueba latin-1.
- parse_dates: convierte columnas de fechas en tipos temporales, no en texto.
El problema del separador
Un CSV «de verdad» usa coma, pero muchos archivos exportados desde hoja de cálculo en configuración europea usan punto y coma, porque la coma ya reserva para decimales. Leer con el separador equivocado produce un DataFrame de una sola columna: señal clara de que hay que cambiar sep.
Cabeceras e índices
A veces la primera columna es un índice sin nombre que read_csv trata como dato. index_col=0 lo declara índice y limpia la tabla. Si faltan nombres de columnas, header=None y names=[...] te dejan asignarlos a mano.
Tipos al cargar
Pandas infiere el dtype de cada columna, y a veces se equivoca: un identificador numérico se lee como entero cuando debería ser texto, o una columna con un error tipográfico se vuelve objeto. dtype=... fuerza el tipo correcto desde el principio, evitando sorpresas.
| Síntoma al cargar | Causa probable | Solución |
|---|---|---|
| Una sola columna con todo el texto | Separador equivocado | ajustar sep |
| Acentos y eñes ilegibles | Codificación | probar encoding utf-8 o latin-1 |
| Columna de fechas como texto | No se parseó | parse_dates=[...] |
| Un índice repetido como columna | Primera columna es índice | index_col=0 |
Abres un CSV y obtienes un DataFrame con una única columna que contiene todo el texto de cada fila. ¿Cuál es la causa más probable?
Excel
pd.read_excel lee hojas de cálculo, donde puede haber varias hojas y celdas combinadas. Se elige la hoja con sheet_name y se controla la fila de cabecera igual que en CSV. Conviene exportar a CSV cuando el archivo es muy irregular.
JSON
Muchas APIs devuelven JSON. read_json carga estructuras anidadas; para registros planos suele bastar pd.json_normalize, que aplana diccionarios anidados en columnas. Es el puente entre un servicio web y un DataFrame.
Delimitadores y basura
- skiprows / nrows: saltar líneas iniciales de licencia o leer solo las primeras filas de prueba.
- na_values: decir a Pandas qué textos representan un dato ausente (N/A, -, ).
- usecols: cargar solo las columnas que interesas, para archivos enormes.
Verificar tras cargar
Nunca asumas que la carga fue limpia: tras read_csv, mira df.shape, df.dtypes y df.head(). Comparar el número de filas con el que anuncia el archivo es el control de calidad mínimo antes de analizar.
Errores frecuentes
- Aceptar los valores por defecto sin mirar el archivo real, y analizar columnas mal troceadas.
- Dejar que un identificador se cargue como entero y perder los ceros iniciales.
- No fijar na_values y tratar como texto válido lo que eran ausentes.
Especificar dtype al cargar un CSV puede evitar que Pandas infiera mal el tipo de una columna.
Cargar es documentar
El conjunto de parámetros con que leste un archivo forma parte de tu análisis. Guárdalos en el código, no en la memoria: reproducir un resultado exige recargar los datos exactamente igual.
Asigna cada parámetro a su finalidad:
Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.
Pandas DocsReferencia completa de parámetros de read_csv.
Imagina que descargas un CSV de datos gubernamentales con punto y coma, acentos y una primera fila de comentarios. Escribe la llamada a read_csv con los parámetros necesarios para cargarlo bien y justifica cada uno.
Tu texto se guarda sólo en este dispositivo.
Documentacion pandasGuia de referencia para manipulacion de datos en Python.
Comentarios
Inicia sesión para comentar.
Todavía no hay comentarios. Sé la primera persona en opinar.