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 dataframe de Pandas
  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 dataframe de Pandas. 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 Dataframe de Pandas. 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 dataframe de Pandas

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 dataframe de Pandas.

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