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, глубоко проанализирует данные, запросив у
objectdtypes потребление памяти на уровне системы и включит его в возвращаемые значения.
Возвращает: -
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