Как вернуть строку из pandas.DataFrame.info()

Я хотел бы отобразить вывод из pandas.DataFrame.info() на tkinter текстовый виджет, поэтому мне нужна строка. Однако pandas.DataFrame.info() возвращает NoneType есть ли в любом случае я могу это изменить?

import pandas as pd
import numpy as np

data = np.random.rand(10).reshape(5,2)
cols = 'a', 'b'
df = pd.DataFrame(data, columns=cols)
df_info = df.info()
print(df_info)
type(df_info)

Я хотел бы сделать что-то вроде:

info_str = ""
df_info = df.info(buf=info_str)

можно сделать pandas чтобы вернуть объект string из DataFrame.info()?

1 ответов


в документации, которую вы связали, есть :

buf: доступный для записи буфер, по умолчанию sys.стандартный вывод

таким образом, одним из вариантов было бы передать экземпляр StringIO:

>>> import io
>>> buf = io.StringIO()
>>> df.info(buf=buf)
>>> s = buf.getvalue()
>>> type(s)
<class 'str'>
>>> print(s)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 2 columns):
a    5 non-null float64
b    5 non-null float64
dtypes: float64(2)
memory usage: 160.0 bytes