Jak zapisać pandas dataframe do późniejszego wykorzystania (z przykładem)


Często możesz chcieć zapisać ramkę danych pandy do późniejszego wykorzystania bez konieczności ponownego importowania danych z pliku CSV.

Najłatwiej to zrobić, używając to_pickle() w celu zapisania ramki danych jako pliku pickle:

 df. to_pickle (" my_data.pkl ")

Spowoduje to zapisanie ramki DataFrame w bieżącym środowisku pracy.

Następnie możesz użyć funkcji read_pickle() , aby szybko odczytać ramkę danych z pliku pickle:

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

Poniższy przykład pokazuje, jak w praktyce wykorzystać te funkcje.

Przykład: zapisz i załaduj ramkę danych Pandas

Załóżmy, że tworzymy następującą ramkę danych pand zawierającą informacje o różnych drużynach koszykówki:

 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

Możemy użyć df.info() do wyświetlenia typu danych każdej zmiennej w 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

Możemy użyć funkcji to_pickle() , aby zapisać tę ramkę danych w pliku pickle z rozszerzeniem .pkl :

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

Nasza ramka danych jest teraz zapisana jako plik pickle w naszym obecnym środowisku pracy.

Możemy następnie użyć funkcji read_pickle(), aby szybko odczytać ramkę danych:

 #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

Możemy ponownie użyć df.info() , aby potwierdzić, że typ danych w każdej kolumnie jest taki sam jak poprzednio:

 #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

Zaletą korzystania z plików pickle jest to, że typ danych każdej kolumny jest zachowywany podczas zapisywania i ładowania ramki DataFrame.

Daje to przewagę nad zapisywaniem i ładowaniem plików CSV, ponieważ nie musimy wykonywać żadnych transformacji w ramce DataFrame, ponieważ plik pickle zachowuje oryginalny stan ramki DataFrame.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *