Comment enregistrer le DataFrame Pandas pour une utilisation ultérieure (avec exemple)
Souvent, vous souhaiterez peut-être enregistrer un DataFrame pandas pour une utilisation ultérieure sans avoir à réimporter les données à partir d’un fichier CSV.
Le moyen le plus simple de procéder consiste à utiliser to_pickle() pour enregistrer le DataFrame en tant que fichier pickle :
df.to_pickle("my_data.pkl")
Cela enregistrera le DataFrame dans votre environnement de travail actuel.
Vous pouvez ensuite utiliser read_pickle() pour lire rapidement le DataFrame à partir du fichier pickle :
df = pd.read_pickle("my_data.pkl")
L’exemple suivant montre comment utiliser ces fonctions dans la pratique.
Exemple : enregistrer et charger le DataFrame Pandas
Supposons que nous créions le DataFrame pandas suivant qui contient des informations sur diverses équipes de basket-ball :
import pandas as pd
#create DataFrame
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 H 28 4 12
Nous pouvons utiliser df.info() pour afficher le type de données de chaque variable dans le 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 points 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
Nous pouvons utiliser la fonction to_pickle() pour enregistrer ce DataFrame dans un fichier pickle avec une extension .pkl :
#save DataFrame to pickle file
df.to_pickle("my_data.pkl")
Notre DataFrame est désormais enregistré sous forme de fichier pickle dans notre environnement de travail actuel.
On peut alors utiliser la fonction read_pickle() pour lire rapidement le 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 H 28 4 12
Nous pouvons utiliser à nouveau df.info() pour confirmer que le type de données de chaque colonne est le même qu’avant :
#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 points 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
L’avantage de l’utilisation des fichiers pickle est que le type de données de chaque colonne est conservé lorsque nous enregistrons et chargeons le DataFrame.
Cela offre un avantage par rapport à l’enregistrement et au chargement de fichiers CSV car nous n’avons pas besoin d’effectuer de transformations sur le DataFrame puisque le fichier pickle préserve l’état d’origine du DataFrame.
Ressources additionnelles
Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes en Python :
Comment réparer KeyError dans Pandas
Comment réparer : ValueError : impossible de convertir le float NaN en entier
Comment réparer : ValueError : les opérandes n’ont pas pu être diffusés avec les formes