2016-09-11 126 views
3

我想在tkinter文本小部件上顯示來自pandas.DataFrame.info()的輸出,所以我需要一個字符串。然而pandas.DataFrame.info()返回NoneType有反正我可以改變這個?如何從pandas.DataFrame.info()返回字符串

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) 

是否有可能獲得pandasDataFrame.info()返回一個字符串對象?

回答

6

在您鏈接的文件,有一個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 
+0

感謝您的回答!我看到了'buf'參數並試圖給它一個空字符串來寫入,但它不起作用。你知道我在哪裏可以找到可以傳遞給buf的有效對象列表嗎? – Bprodz