Tutoriales Interactivos
BlogIniciar sesiónComenzar gratis
Inicio›Blog›Análisis de Datos›Cómo leer archivos CSV y Excel con pandas

Cómo leer archivos CSV y Excel con pandas

Los datos rara vez vienen listos en tu código — normalmente están en archivos CSV, Excel, bases de datos o APIs. El primer paso de cualquier análisis es cargar esos datos en Python. pandas hace esto muy simple.

Leer un archivo CSV

CSV (Comma-Separated Values) es el formato más común para datos tabulares.

import pandas as pd

df = pd.read_csv('datos.csv')
print(df.head())

Si el archivo está en otra carpeta:

df = pd.read_csv('/ruta/a/mis/datos/ventas.csv')

Opciones útiles de read_csv

# Especificar separador (a veces es ; en lugar de ,)
df = pd.read_csv('datos.csv', sep=';')

# Saltar filas al inicio
df = pd.read_csv('datos.csv', skiprows=2)

# Leer solo algunas columnas
df = pd.read_csv('datos.csv', usecols=['nombre', 'salario', 'fecha'])

# Especificar el encoding (importante con acentos y ñ)
df = pd.read_csv('datos.csv', encoding='utf-8')
# o si falla:
df = pd.read_csv('datos.csv', encoding='latin-1')

# Indicar columna de fecha para parsearla automáticamente
df = pd.read_csv('datos.csv', parse_dates=['fecha_venta'])

Leer un archivo Excel

# Requiere openpyxl: pip install openpyxl
df = pd.read_excel('datos.xlsx')

# Leer una hoja específica
df = pd.read_excel('datos.xlsx', sheet_name='Ventas 2025')

# Leer todas las hojas (devuelve un diccionario)
hojas = pd.read_excel('datos.xlsx', sheet_name=None)
df_ventas = hojas['Ventas']
df_gastos = hojas['Gastos']

Verificar los datos cargados

Después de cargar, siempre revisa:

print(df.shape)           # cuántas filas y columnas
print(df.dtypes)          # tipos de datos
print(df.head())          # primeras filas
print(df.isnull().sum())  # valores faltantes
print(df.duplicated().sum()) # duplicados

Ejemplo completo: análisis de ventas

import pandas as pd

# Cargar datos
df = pd.read_csv('ventas.csv', parse_dates=['fecha'])

# Revisar
print(f"Filas: {df.shape[0]}, Columnas: {df.shape[1]}")
print(df.dtypes)
print(df.head(3))

# Resumen estadístico
print(df['monto'].describe())

# Ventas totales por mes
df['mes'] = df['fecha'].dt.month
print(df.groupby('mes')['monto'].sum())

Guardar el resultado

Después de limpiar o transformar los datos, puedes guardarlos:

df.to_csv('datos_limpios.csv', index=False)
df.to_excel('datos_limpios.xlsx', index=False)

index=False evita que se guarde la columna de índice numérico de pandas.

Errores frecuentes

Error de encoding con acentos: si ves caracteres raros (é en lugar de é), prueba con encoding='latin-1' o encoding='utf-8-sig'.

Separador incorrecto: si read_csv genera una sola columna con todo el contenido, es probable que el separador sea ; y no ,. Usa sep=';'.

Fechas como strings: pandas no convierte fechas automáticamente. Si necesitas operar con fechas, usa parse_dates=['columna_fecha'] al cargar.

Aprende haciendo, no solo leyendo

Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de SQL y recibes corrección inmediata de IA.

Comenzar gratis →
Desafío Latam
+56 9 5117 7975
+52 1 55 4047 7251
[email protected]

Carreras

  • Full Stack JavaScript
  • Diseño UX/UI
  • Data Science
  • Data Analytics

Comunidad

  • Blog
  • Becas
  • Trabaja con Nosotros
  • Políticas de Calidad

Síguenos

© 2026 Desafío Latam. Todos los derechos reservados.