Метод memory_usage
Метод memory_usage применяется к DataFrame
и возвращает Series с объёмом памяти,
занимаемым каждым столбцом.
Параметр index указывает,
включать ли в результат память индекса.
По умолчанию index=True, что включает размер индекса.
Параметр deep позволяет учитывать
память самих объектов (например, строки в столбцах с типом object).
По умолчанию deep=False,
что даёт приблизительную оценку памяти.
Синтаксис
df.memory_usage(index=True, deep=False)
Пример
Давайте получим память для каждого столбца таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.memory_usage())
Результат выполнения кода:
Index 128
a 40
b 40
dtype: int64
В результате видно, что индекс и каждый столбец занимают по 40 байт для 5 элементов типа int64.
Пример
Давайте исключим память индекса из результата:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.memory_usage(index=False))
Результат выполнения кода:
a 40
b 40
dtype: int64
Пример
Рассмотрим глубокую оценку памяти для столбцов со строками:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': ['abcde', 'article', 'user']
})
print(df.memory_usage(deep=True))
Результат выполнения кода:
Index 128
a 24
b 211
dtype: int64
В этом случае для столбца b
отображается реальный объём памяти,
занимаемый строками.
Пример
Получим общий объём памяти всей таблицы
с помощью метода sum:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
total = df.memory_usage().sum()
print(total)
Результат выполнения кода:
208
Смотрите также
-
метод
info,
который выводит сводку по таблице, включая память -
метод
astype,
который изменяет типы данных для экономии памяти -
метод
convert_dtypes,
который автоматически подбирает типы данных -
метод
select_dtypes,
который выбирает столбцы по типам данных