Я хочу сериализовать свой DataFrame. DataFrame использует 10,1 ГБ памяти и имеет 59 миллионов записей.
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 59181090 entries, 0 to 59181089
Data columns (total 22 columns):
(...)
dtypes: float64(1), int64(9), object(12)
memory usage: 10.1+ GB
Когда я сериализую DataFrame с помощью пера, а затем повторно импортирую сериализованный DataFrame, кажется, что DataFrame поврежден.
df.("raw_df.feather")
unserialized_df = pd.read_feather("raw_df.feather")
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 22909623 entries, 0 to 22909622
Data columns (total 22 columns):
(...)
dtypes: float64(2), int64(8), object(12)
memory usage: 3.8+ GB
Он также вводит небольшое количество значений NaN, которых раньше не было.
Как лучше всего сериализовать большой DataFrame?
Я использую ml.m4. 10xlarge AWS экземпляр с SageMaker с интерфейсом JupyterLab. У меня есть 30 ГБ свободного места с 4 ГБ, поэтому на меня должно распространяться ограничение на хранение.
У меня 160 ГБ основной памяти, поэтому у меня не должно возникнуть проблем с обработкой всего DataFrame.
Я использую Pandas 0.24.2 с Python 3.6.5 | Anaconda, In c. | (по умолчанию, 29 апреля 2018 г., 16:14:56) [G CC 7.2.0].