Programación con Python para Datos · Programación

Cargar datos reales

Importar archivos CSV, Excel y JSON con Pandas, manejando cabeceras, separadores, codificación e índices.

Cargar datos reales

Ilustracion de Python para datos: DataFrame, graficas y arrays de NumPy.
Python para ciencia de datos: NumPy, pandas y manipulacion de datos.

Mapa conceptual

Bien cargado, medio analizado Un análisis empieza mucho antes del primer gráfico: en el momento en que lees el archivo. Cargar mal un CSV (el separador, la codificación, el tipo de una columna) contamina todo lo que viene después.

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

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.

Diagnosticar la carga leyendo la forma resultante del DataFrame.
Síntoma al cargarCausa probableSolución
Una sola columna con todo el textoSeparador equivocadoajustar sep
Acentos y eñes ilegiblesCodificaciónprobar encoding utf-8 o latin-1
Columna de fechas como textoNo se parseóparse_dates=[...]
Un índice repetido como columnaPrimera columna es índiceindex_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

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

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:

Separador
Codificacion
Indices
Fechas

Pandas Docs
Referencia 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.

Documentacion pandas
Guia de referencia para manipulacion de datos en Python.