Pandas es una potente biblioteca de Python para la manipulación y el análisis de datos, y la carga de datos desde archivos de texto es una tarea fundamental. Este artículo explora métodos eficientes para importar datos de varios formatos de texto a DataFrames de Pandas.
Tabla de contenido
- Cargar archivos CSV y delimitados con
read_csv()
- Manejar archivos de ancho fijo con
read_fwf()
- Usar
read_table()
para archivos separados por tabulaciones y otros archivos delimitados
1. Cargar archivos CSV y delimitados con read_csv()
La función read_csv()
es el caballo de batalla para importar archivos de valores separados por comas (CSV). Su versatilidad se extiende a otros archivos delimitados especificando el delimitador usando el parámetro sep
o delimiter
. Exploremos sus capacidades:
import pandas as pd
# Cargar un archivo CSV
df_csv = pd.read_csv("data.csv")
print(df_csv.head()) #Usando head() para mostrar solo las primeras filas para una mejor legibilidad
# Cargar un archivo separado por tabulaciones
df_tsv = pd.read_csv("data.tsv", sep="t")
print(df_tsv.head())
# Cargar un archivo con una pipe como delimitador
df_pipe = pd.read_csv("data.txt", delimiter="|")
print(df_pipe.head())
Más allá de la carga básica, read_csv()
ofrece parámetros poderosos para un control preciso:
sep
odelimiter
: Especifica el delimitador (el valor predeterminado es ‘,’).header
: Número(s) de fila(s) para los nombres de las columnas (el valor predeterminado es 0, useNone
si no hay encabezado).names
: Lista de nombres de columnas si no hay fila de encabezado.index_col
: Columna a usar como índice del DataFrame.usecols
: Selecciona columnas específicas para mejorar el rendimiento.nrows
: Lee solo las primerasn
filas para previsualizar archivos grandes.skiprows
: Omite las filas especificadas al principio.encoding
: Especifica la codificación del archivo (por ejemplo, ‘utf-8’, ‘latin-1’).dtype
: Especifica los tipos de datos para las columnascomment
: Caracter para indicar líneas de comentario
2. Manejar archivos de ancho fijo con read_fwf()
El método read_fwf()
(leer formato de ancho fijo) es crucial para archivos donde las columnas se definen por su ancho fijo, no por delimitadores. Esto es común en sistemas heredados.
import pandas as pd
# Definir los anchos de las columnas
colspecs = [(0, 10), (10, 20), (20, 30)] # Las columnas tienen 10, 10 y 10 caracteres de ancho
# Cargar el archivo de ancho fijo
df_fwf = pd.read_fwf("data_fwf.txt", colspecs=colspecs, header=None)
df_fwf.columns = ['Column1', 'Column2', 'Column3']
print(df_fwf.head())
Los parámetros clave para read_fwf()
incluyen:
colspecs
: Lista de tuplas que definen las posiciones de inicio y fin de la columna.widths
: Alternativa acolspecs
, que proporciona una lista de anchos de columna.header
: Número de fila para el encabezado (igual queread_csv()
).names
: Proporciona nombres de columna (igual queread_csv()
).
3. Usar read_table()
para archivos separados por tabulaciones y otros archivos delimitados
read_table()
es en gran medida equivalente a read_csv()
, con un delimitador predeterminado de tabulación (t
). Es ideal para archivos separados por tabulaciones (TSV), pero puede manejar otros delimitadores especificando el parámetro sep
. Comparte todos los parámetros de read_csv()
, proporcionando una flexibilidad similar.
import pandas as pd
# Cargar un archivo separado por tabulaciones
df_table = pd.read_table("data.tsv")
print(df_table.head())
# Especificar un delimitador diferente
df_table_custom = pd.read_table("data.txt", sep="|")
print(df_table_custom.head())
Pandas ofrece herramientas robustas para importar eficientemente datos de diversos formatos de archivos de texto. La selección del método correcto depende de la estructura de sus datos. Recuerde abordar los problemas de codificación y manejar los valores faltantes después de la carga.