Получить значение использования памяти из Pandas DataFrame.info () - PullRequest
0 голосов
/ 26 апреля 2018

Как я могу получить значение использования памяти (отображается в выводе функции DataFrame.info() и присвоить переменной?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Поскольку документы говорят, что у нас должен быть buffer.

buf : writable buffer, defaults to sys.stdout

Для df

import io
impor pandas as pd
df=pd.DataFrame({
    'someCol' : ["foo", "bar"]
}) 
buf = io.StringIO()
df.info(buf=buf)
info = buf.getvalue()
print(info)

Дает мне вывод:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 1 columns):
someCol    2 non-null object
dtypes: object(1)
memory usage: 96.0+ bytes

Для определенного значения использования памяти:

info = buf.getvalue().split('\n')[-2]
print(info)

выдаст вывод:

memory usage: 96.0+ bytes
0 голосов
/ 26 апреля 2018

DataFrame.memory_usage().sum()

На есть пример :

.
In [8]: df.memory_usage()
Out[8]: 
Index                 72
bool                5000
complex128         80000
datetime64[ns]     40000
float64            40000
int64              40000
object             40000
timedelta64[ns]    40000
categorical         5800
dtype: int64

# total memory usage of dataframe
In [9]: df.memory_usage().sum()
Out[9]: 290872

Просмотр исходного кода df.info () показывает, что с помощью memory_usage () они вычисляют фактическое использование памяти в df.info ():

... <last few lines of def info from pandas/frame.py>
    mem_usage = self.memory_usage(index=True, deep=deep).sum()
    lines.append("memory usage: %s\n" %
                 _sizeof_fmt(mem_usage, size_qualifier))
_put_lines(buf, lines)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...