Cómo cargar datos de un archivo de texto en Pandas

  1. read_csv() método para cargar los datos del archivo de texto
  2. read_fwf() método para cargar el archivo de texto con formato ancho en el Pandas DataFrame
  3. read_table() método para cargar el archivo de texto a Pandas DataFrame

Introduciremos los métodos para cargar los datos del fichero txt con el Pandas DataFrame. También repasaremos las opciones disponibles.

Primero, crearemos un simple archivo de texto llamado sample.txt y añadiremos las siguientes líneas al archivo:

45 apple orange banana mango
12 orange kiwi onion tomato

Necesitamos guardarlo en el mismo directorio desde donde se ejecutará el script Python.

read_csv() método para cargar los datos del archivo de texto

read_csv() es la mejor manera de convertir el archivo de text en el Pandas DataFrame. Necesitamos poner header=None ya que no tenemos ningún header en el archivo creado arriba. También podemos poner keep_default_na=False dentro del método si queremos reemplazar los valores vacíos con NaN.

Códigos de ejemplo:

# python 3.x
import pandas as pd
df = pd.read_csv(
    'sample.txt', sep=" ",header=None)
print(df)

Producción:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi   onion  tomato

Ponemos sep=" " porque los valores están separados por un solo espacio en blanco. De manera similar, podemos establecer sep="," si leemos los datos de un archivo separado por comas. Reemplaza los espacios en blanco dentro de sample.txt por ,y luego ejecuta el código después de reemplazar sep=" " con sep=",".

Sample.txt

45,apple,orange,banana,mango
12,orange,kiwi,,tomato

Código:

# python 3.x
import pandas as pd
df = pd.read_csv(
    'sample.txt', sep=",",header=None)
print(df)

Producción:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi     NaN  tomato

read_fwf() método para cargar el archivo de texto con formato ancho en el Pandas DataFrame

read_fwf() es muy útil para cargar un archivo de texto con formato ancho. No podemos usar sep porque diferentes valores pueden tener diferentes delimitadores. Considera el siguiente archivo de texto:

Sample.txt

45 apple  orange banana mango
12 orange kiwi   onion  tomato

En Sample.text, delimiter no es lo mismo para todos los valores. Así que read_fwf() hará el trabajo aquí.

Código:

# python 3.x
import pandas as pd
df = pd.read_fwf(
    'sample.txt',header=None)
print(df)

Producción:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi   onion  tomato

read_table() método para cargar el archivo de texto a Pandas DataFrame

read_table() es otro enfoque para cargar datos desde el archivo de text al Pandas DataFrame.

Sample.txt:

45 apple orange banana mango
12 orange kiwi onion tomato

Código:

# python 3.x
import pandas as pd
df = pd.read_table(
    'sample.txt',header=None,sep=" ")
print(df)

Producción:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi   onion  tomato