Carica i dati dal file di testo in Pandas

Asad Riaz 25 aprile 2021
  1. Metodo read_csv() per caricare i dati da un file di testo
  2. Metodo read_fwf() per caricare file di testo in formato larghezza su Pandas DataFrame
  3. Metodo read_table() per caricare il file di testo su Pandas DataFrame
Carica i dati dal file di testo in Pandas

Introdurremo i metodi per caricare i dati da un file txt con Pandas DataFrame. Esamineremo anche le opzioni disponibili.

Per prima cosa, creeremo un semplice file di testo chiamato sample.txt e aggiungeremo le seguenti righe al file:

45 apple orange banana mango
12 orange kiwi onion tomato

Dobbiamo salvarlo nella stessa directory da cui verrà eseguito lo script Python.

Metodo read_csv() per caricare i dati da un file di testo

read_csv() è il modo migliore per convertire il file text in Pandas DataFrame. Dobbiamo impostare header=None poiché non abbiamo alcun header nel file creato sopra. Possiamo anche impostare keep_default_na=False all’interno del metodo se vogliamo sostituire i valori vuoti con NaN.

Codici di esempio:

# python 3.x
import pandas as pd

df = pd.read_csv("sample.txt", sep=" ", header=None)
print(df)

Produzione:

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

Abbiamo impostato sep=" " perché un singolo spazio bianco separa i valori. Allo stesso modo, possiamo impostare sep="," se leggiamo i dati da un file separato da virgole. Sostituisci gli spazi bianchi all’interno di sample.txt con , e poi esegui il codice dopo aver sostituito sep=" " con sep=",".

Sample.txt

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

Codice:

# python 3.x
import pandas as pd

df = pd.read_csv("sample.txt", sep=",", header=None)
print(df)

Produzione:

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

Metodo read_fwf() per caricare file di testo in formato larghezza su Pandas DataFrame

read_fwf() è molto utile per caricare un file di testo formattato in larghezza. Non possiamo usare sep perché valori diversi possono avere delimitatori diversi. Considera il seguente file di testo:

Sample.txt

45 apple  orange banana mango
12 orange kiwi   onion  tomato

In Sample.text, delimiter non è lo stesso per tutti i valori. Quindi read_fwf() farà il lavoro qui.

Codice:

# python 3.x
import pandas as pd

df = pd.read_fwf("sample.txt", header=None)
print(df)

Produzione:

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

Metodo read_table() per caricare il file di testo su Pandas DataFrame

read_table() è un altro approccio per caricare i dati dal file text al DataFrame di Pandas.

Sample.txt:

45 apple orange banana mango
12 orange kiwi onion tomato

Codice:

# python 3.x
import pandas as pd

df = pd.read_table("sample.txt", header=None, sep=" ")
print(df)

Produzione:

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