Часто вам может потребоваться сохранить кадр данных pandas для последующего использования без необходимости повторного импорта данных из файла CSV.
Самый простой способ сделать это — использовать to_pickle() для сохранения DataFrame в виде файла рассола:
df.to_pickle (" my_data.pkl ")
Это сохранит DataFrame в вашей текущей рабочей среде.
Затем вы можете использовать read_pickle() для быстрого чтения DataFrame из файла рассола:
df = pd.read_pickle (" my_data.pkl ")
В следующем примере показано, как использовать эти функции на практике.
Пример: сохранение и загрузка Pandas DataFrame
Предположим, мы создаем следующий кадр данных pandas, который содержит информацию о различных баскетбольных командах:
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
Мы можем использовать df.info() для просмотра типа данных каждой переменной в 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
Мы можем использовать функцию to_pickle() , чтобы сохранить этот DataFrame в файл рассола с расширением .pkl :
#save DataFrame to pickle file
df.to_pickle (" my_data.pkl ")
Наш DataFrame теперь сохранен как файл рассола в нашей текущей рабочей среде.
Затем мы можем использовать функцию read_pickle() для быстрого чтения 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
Мы можем снова использовать df.info() , чтобы убедиться, что тип данных каждого столбца такой же, как и раньше:
#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
Преимущество использования файлов pickle заключается в том, что тип данных каждого столбца сохраняется при сохранении и загрузке DataFrame.
Это дает преимущество перед сохранением и загрузкой файлов CSV, поскольку нам не нужно выполнять какие-либо преобразования в DataFrame, поскольку файл рассола сохраняет исходное состояние DataFrame.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:
Как исправить KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в целое число
Как исправить: ValueError: операнды не могли транслироваться вместе с фигурами