Hoe pandas dataframe op te slaan voor later gebruik (met voorbeeld)


Vaak wilt u misschien een Panda’s DataFrame opslaan voor later gebruik zonder dat u de gegevens opnieuw uit een CSV-bestand hoeft te importeren.

De eenvoudigste manier om dit te doen is door to_pickle() te gebruiken om het DataFrame op te slaan als een pickle-bestand:

 df. to_pickle (" my_data.pkl ")

Hiermee wordt het DataFrame in uw huidige werkomgeving opgeslagen.

U kunt vervolgens read_pickle() gebruiken om snel het DataFrame uit het pickle-bestand te lezen:

 df = pd. read_pickle (" my_data.pkl ")

Het volgende voorbeeld laat zien hoe u deze functies in de praktijk kunt gebruiken.

Voorbeeld: sla het Pandas DataFrame op en laad het

Stel dat we het volgende panda’s DataFrame maken dat informatie bevat over verschillende basketbalteams:

 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

We kunnen df.info() gebruiken om het gegevenstype van elke variabele in het DataFrame weer te geven:

 #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

We kunnen de functie to_pickle() gebruiken om dit DataFrame op te slaan in een pickle-bestand met de extensie .pkl :

 #save DataFrame to pickle file
df. to_pickle (" my_data.pkl ")

Ons DataFrame wordt nu opgeslagen als een pickle-bestand in onze huidige werkomgeving.

We kunnen dan de functie read_pickle() gebruiken om het DataFrame snel te lezen:

 #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

We kunnen df.info() opnieuw gebruiken om te bevestigen dat het gegevenstype van elke kolom hetzelfde is als voorheen:

 #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

Het voordeel van het gebruik van pickle-bestanden is dat het gegevenstype van elke kolom behouden blijft wanneer we het DataFrame opslaan en laden.

Dit biedt een voordeel ten opzichte van het opslaan en laden van CSV-bestanden, omdat we geen transformaties op het DataFrame hoeven uit te voeren, omdat het pickle-bestand de oorspronkelijke staat van het DataFrame behoudt.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:

Hoe KeyError in Panda’s te repareren
Oplossing: ValueError: Kan float NaN niet naar int converteren
Oplossing: ValueError: Operanden konden niet worden uitgezonden met vormen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert