HOWTO · Pandas
Leer archivo GZ en Pandas
Este escrito demuestra el uso de una biblioteca de Python llamada Pandas para leer un archivo gz.
En esta página
Usa pandas.read_csv() para cargar directamente un archivo CSV comprimido con gzip en un DataFrame. Indica la ruta .csv.gz y, si resulta útil, configura compression="gzip"; pandas descomprime el archivo mientras analiza su contenido CSV. El ejemplo siguiente crea un archivo local pequeño que puedes ejecutar sin descargar un conjunto de datos. Al adaptarlo, reemplaza la ruta temporal por la de tu archivo.
Leer un CSV comprimido con gzip usando pandas
El sufijo .gz indica que hay compresión gzip, no el formato de los datos que contiene el archivo. Un archivo gzip puede contener texto CSV, pero también otros formatos. Usa read_csv cuando el contenido descomprimido sea texto separado por comas. En los casos habituales, pandas puede inferir la compresión a partir del sufijo .gz; indicar compression="gzip" hace explícito el tipo de compresión y resulta útil cuando la ruta o el objeto de archivo no permiten determinarlo.
Ejecuta este ejemplo:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
import gzip
import tempfile
from pathlib import Path
import pandas as pd
with tempfile.TemporaryDirectory() as directory:
csv_gz_path = Path(directory) / "sales.csv.gz"
with gzip.open(csv_gz_path, "wt", encoding="utf-8", newline="") as file:
file.write("item,quantity\nnotebook,3\npen,8\n")
sales = pd.read_csv(csv_gz_path, compression="gzip")
print(sales.head())
El archivo se crea en un directorio temporal y está disponible para read_csv durante la misma ejecución. El ejemplo usa texto UTF-8 dentro del flujo gzip y crea un CSV con una fila de encabezado seguida de dos registros. Si ya tienes un archivo, conserva la línea de carga y reemplaza csv_gz_path por su ruta real.
Configurar read_csv para tu archivo
read_csv devuelve un DataFrame de pandas y, de forma predeterminada, toma los nombres de las columnas del encabezado del CSV. En el ejemplo, compression="gzip" indica cómo descomprimir la entrada. Puedes omitirlo si pandas infiere gzip a partir del nombre de archivo terminado en .gz. El separador predeterminado es la coma, así que normalmente tampoco hace falta indicar sep=","; para un archivo separado por tabulaciones, usa sep="\t".
El valor predeterminado header="infer" interpreta la primera fila como nombres de columna; para este archivo, equivale a header=0. Usa header=None si el archivo no tiene encabezado y proporciona names=[...] si quieres asignar nombres a las columnas. El carácter de comillas predeterminado para analizar CSV es quotechar='"'. Un campo entre comillas puede contener una coma sin dividirse en otra columna, así que cambia quotechar solo si el archivo utiliza otra convención de comillas.
Las rutas relativas se interpretan desde el directorio de trabajo actual del proceso, mientras que las absolutas no dependen de ese directorio. Puedes usar como entrada un objeto Path, tal como se muestra, o una ruta de tipo cadena. Para una ruta de Windows, usa una cadena sin procesar como r"C:\data\sales.csv.gz" o construye la ruta con pathlib para evitar problemas con las barras invertidas.
Inspeccionar y usar el DataFrame resultante
La variable sales es un DataFrame, por lo que puedes seleccionar columnas, filtrar filas y pasarla a otras operaciones de pandas. De forma predeterminada, sales.head() devuelve las primeras cinco filas; sales.head(10) solicita diez. Es una forma rápida de comprobar que el encabezado se convirtió en nombres de columna y que los valores quedaron separados en las columnas esperadas. Para consultar las etiquetas y los tipos interpretados, revisa sales.columns y sales.dtypes.
Las filas mostradas dependen del archivo que cargues y de la configuración de visualización de pandas. Si documentas un conjunto de datos real, presenta la salida como texto seleccionable y no consideres una vista previa como una validación completa de todas las filas de un archivo grande.
Resolver problemas de formato y rutas
Si Python indica que no encuentra el archivo, comprueba la ortografía, las mayúsculas y minúsculas y el directorio; si usas una ruta relativa, verifica también el directorio de trabajo actual. Para un objeto de archivo o un nombre sin el sufijo .gz, indica explícitamente compression="gzip" si los bytes están comprimidos con gzip. Si pandas informa de un error de descompresión, comprueba que el archivo realmente contenga datos gzip y que no esté truncado.
Si la descompresión funciona, pero falla el análisis CSV o las columnas no se ven como esperabas, inspecciona el contenido descomprimido y ajusta las opciones de análisis a ese contenido. Entre las causas habituales están usar read_csv con un archivo gzip cuyo contenido no es CSV, elegir un separador incorrecto o tratar un archivo sin encabezado como si su primera fila de datos contuviera los nombres de las columnas. Los campos entre comillas pueden incluir separadores; si configuras quotechar correctamente, el analizador mantiene esos valores dentro de un mismo campo. gzip solo se ocupa de la compresión: no convierte otros formatos de archivo en CSV.