Spec-Zone.ru › pandas 0.24

pandas.DataFrame.memory_usage

DataFrame.memory_usage(index=True, deep=False) [source]

Возвращает объём памяти, занимаемый каждым столбцом в байтах.

Объём памяти можно дополнительно включать вклад индекса и элементов типа object.

По умолчанию это значение отображается в DataFrame.info. Это можно отключить, установив pandas.options.display.memory_usage в False.

Параметры:
index : bool, default True

Указывает, следует ли включать в объём памяти индекс DataFrame в возвращаемую серию. Если index=True, то объём памяти индекса будет первым элементом в выводе.

deep : bool, default False

Если True, глубоко проанализирует данные, запросив у object dtypes потребление памяти на уровне системы и включит его в возвращаемые значения.

Возвращает:
sizes : Series

Серия, индекс которой совпадает с исходными именами столбцов, а значениями являются объём памяти каждого столбца в байтах.

См. также

numpy.ndarray.nbytes
Общий объём байт, потребляемых элементами ndarray.
Series.memory_usage
Объём байт, потребляемых серией.
pandas.Categorical
Массив с высокой эффективностью памяти для строковых значений с множеством повторяющихся значений.
DataFrame.info
Краткие сведения о DataFrame.

Примеры

>>> dtypes = ['int64', 'float64', 'complex128', 'object', 'bool']
>>> data = dict([(t, np.ones(shape=5000).astype(t))
...              for t in dtypes])
>>> df = pd.DataFrame(data)
>>> df.head()
   int64  float64  complex128 object  bool
0      1      1.0      (1+0j)      1  True
1      1      1.0      (1+0j)      1  True
2      1      1.0      (1+0j)      1  True
3      1      1.0      (1+0j)      1  True
4      1      1.0      (1+0j)      1  True
>>> df.memory_usage()
Index            80
int64         40000
float64       40000
complex128    80000
object        40000
bool           5000
dtype: int64
>>> df.memory_usage(index=False)
int64         40000
float64       40000
complex128    80000
object        40000
bool           5000
dtype: int64

След памяти столбцов типа object по умолчанию игнорируется:

>>> df.memory_usage(deep=True)
Index             80
int64          40000
float64        40000
complex128     80000
object        160000
bool            5000
dtype: int64

Используйте Categorical для эффективного хранения столбца типа object с множеством повторяющихся значений.

>>> df['object'].astype('category').memory_usage(deep=True)
5168

© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.24.2/reference/api/pandas.DataFrame.memory_usage.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API