如何从pandas.DataFrame.info()返回一个字符串

Jas*_*son 10 python pandas

我想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)
Run Code Online (Sandbox Code Playgroud)

我想做点什么:

info_str = ""
df_info = df.info(buf=info_str)
Run Code Online (Sandbox Code Playgroud)

是否可以从中pandas返回一个字符串对象DataFrame.info()

DSM*_*DSM 15

在您链接的文档中,有一个buf参数:

buf:可写缓冲区,默认为sys.stdout

因此,一种选择是传递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
Run Code Online (Sandbox Code Playgroud)