У меня есть некоторые несоответствия памяти, когда я использую Pandas DataFrame.
Вот мой скелет кода:
import pandas as pd
import numpy as np
columns_dtype = {'A': np.int16, 'B': np.int8, ...}
df = pd.read_csv('my_file.csv', dtype=columns_dtype)
Это просто чтение csv-файла с пандами при управлении типами данных столбцов. Но затем, когда я ищу, сколько памяти выделено для моей программы, информация не кажется последовательной.
Информация 1:
df.info(memory_usage='deep')
Это дает: memory usage: 482.6 MB
Информация 2:
import dill, sys
sys.getsizeof(dill.dumps(df))
Это дает: 506049782
(т. Е. 506 Мб)
Информация 3:
Объем оперативной памяти, выделенный моей программе: 1,1 ГиБ (или 1,2 Гб)
Дополнительная информация (но я не думаю, что это актуально):
размер my_file.csv составляет 888 Мб (ls -lh)
Выпуск:
Поскольку я просто загружаю свой CSV-файл в объект Pandas DataFrame, почему моей программе требуется более 1 ГБ ОЗУ, тогда как размер объекта составляет около 0,5 ГБ?
Большое спасибо