2013-10-06 29 views
0

我在Pandas中使用read_csv方法輸入多個.csv文件。我打印出來的read_csv返回的對象,並很好奇輸出的差異:pandas中的read_csv返回的對象

例如,一個打印輸出:

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 10 entries, 0 to 9 
Data columns (total 5 columns): 
col_1   10 non-null values 
col_2   10 non-null values 
col_3   10 non-null values 
col_4   10 non-null values 
col_5   10 non-null values 
dtypes: int64(5) 

而另一個很簡單:

col_a col_b col_c col_d col_e col_f 
0  1  1  1 183227  1 181913 
1  2  1  1 183234  1 183003 
... 

我應該如何解釋這些輸出的差異?爲什麼第二個文件不會導致DataFrame對象?

+1

熊貓將截斷如果結果可能超出默認設置,則可以使用'set_option('display.max_rows',1000)'或whatevery值來更改此輸出,您可以查找文檔字符串,如果您在IPython中並執行製表符填充,會向您顯示默認設置和當前設置。 – EdChum

回答

3

它們都是數據框。如果輸出超過幾行,Pandas以第一種格式顯示摘要信息,因此它不會填滿屏幕。

如果要完整顯示,可以在DataFrame上使用.to_string()方法。也就是說,如果你的DataFrame是df,那麼即使它很長,也可以通過print df.to_string()來查看所有數據。

3

在這兩種情況下,read_csv都返回一個DataFrame。但是,當您打印DataFrame時,將調用其__str__方法,並且此方法可能會根據其維度(列,行和總寬度)選擇不同的值來表示DataFrame。

默認情況下,Pandas最多顯示20列和60行。如果數據幀超出這些尺寸,然後它採用了總結格式,如

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 10 entries, 0 to 9 
Data columns (total 5 columns): 
col_1   10 non-null values 
col_2   10 non-null values 
col_3   10 non-null values 
col_4   10 non-null values 
col_5   10 non-null values 
dtypes: int64(5) 

顯示完整的數據框,您可以更改display.max_columnsdisplay.max_rowsdisplay.width選項:

import pandas as pd 
pd.set_option('display.max_columns', 30) 
pd.set_option('display.max_rows', 100)  
pd.set_option('display.width', 120)