Come salvare pandas dataframe per un uso successivo (con esempio)
Spesso potresti voler salvare un DataFrame panda per un uso successivo senza dover reimportare i dati da un file CSV.
Il modo più semplice per farlo è usare to_pickle() per salvare DataFrame come file pickle:
df. to_pickle (" my_data.pkl ")
Ciò salverà DataFrame nel tuo attuale ambiente di lavoro.
Puoi quindi utilizzare read_pickle() per leggere rapidamente il DataFrame dal file pickle:
df = pd. read_pickle (" my_data.pkl ")
L’esempio seguente mostra come utilizzare queste funzioni nella pratica.
Esempio: salva e carica Pandas DataFrame
Supponiamo di creare il seguente DataFrame panda che contiene informazioni su varie squadre di basket:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [18, 22, 19, 14, 14, 11, 20, 28],
' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
print (df)
team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12
Possiamo usare df.info() per visualizzare il tipo di dati di ciascuna variabile nel DataFrame:
#view DataFrame info
print ( df.info ())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 team 8 non-null object
1 point 8 non-null int64
2 assists 8 non-null int64
3 rebounds 8 non-null int64
dtypes: int64(3), object(1)
memory usage: 292.0+ bytes
None
Possiamo usare la funzione to_pickle() per salvare questo DataFrame in un file pickle con estensione .pkl :
#save DataFrame to pickle file
df. to_pickle (" my_data.pkl ")
Il nostro DataFrame è ora salvato come file pickle nel nostro attuale ambiente di lavoro.
Possiamo quindi utilizzare la funzione read_pickle() per leggere rapidamente il DataFrame:
#read DataFrame from pickle file
df=pd. read_pickle (" my_data.pkl ")
#view DataFrame
print (df)
team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12
Possiamo utilizzare nuovamente df.info() per confermare che il tipo di dati di ciascuna colonna è lo stesso di prima:
#view DataFrame info
print ( df.info ())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 team 8 non-null object
1 point 8 non-null int64
2 assists 8 non-null int64
3 rebounds 8 non-null int64
dtypes: int64(3), object(1)
memory usage: 292.0+ bytes
None
Il vantaggio dell’utilizzo dei file pickle è che il tipo di dati di ciascuna colonna viene preservato quando salviamo e carichiamo il DataFrame.
Ciò offre un vantaggio rispetto al salvataggio e al caricamento dei file CSV poiché non è necessario eseguire alcuna trasformazione sul DataFrame poiché il file pickle preserva lo stato originale del DataFrame.
Risorse addizionali
I seguenti tutorial spiegano come correggere altri errori comuni in Python:
Come correggere l’errore chiave nei Panda
Come risolvere il problema: ValueError: impossibile convertire float NaN in int
Come risolvere il problema: ValueError: non è stato possibile trasmettere gli operandi con le forme