Почему существует такая большая разница в использовании памяти для фреймов данных между пандами и R?
Я работаю с данными из https://opendata.rdw.nl/Voertuigen/Open-Data-RDW-Gekentekende_voertuigen_brandstof/8ys7-d773 (загрузите файл CSV с помощью кнопки «Экспортер»).
Когда я импортирую данные в R, используя
Почему эта разница такая большая?
Я использовал следующий код, чтобы определить использование памяти фреймами данных в R:
library(pryr)
object_size(df)
и питон:
df.info(memory_usage="deep")
1 ответ
Я нашел эту ссылку очень полезной и решил, что стоит вырваться из комментариев и подвести итоги:
Уменьшение использования памяти Pandas #1: сжатие без потерь
Загружать только интересующие столбцы с
usecols
df = pd.read_csv('voters.csv', usecols=['First Name', 'Last Name'])
Сжимайте числовые столбцы с меньшими типами dtypes
-
int64
: (по умолчанию) от -9223372036854775808 до 9223372036854775807 -
int16
: От -32768 до 32767 -
int8
: От -128 до 127
df = pd.read_csv('voters.csv', dtype={'Ward Number': 'int8'})
-
Сжимайте категориальные данные с помощью dtype
category
df = pd.read_csv('voters.csv', dtype={'Party Affiliation': 'category'})
Конвертировать в основном
nan
данные в dtypeSparse
sparse_series = series.astype('Sparse[str]')