由Pandas中的read_csv返回的对象

时间:2013-10-06 21:42:01

标签: python python-2.7 pandas

我在Pandas中使用read_csv方法输入多个.csv文件。我打印出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对象?

2 个答案:

答案 0 :(得分:3)

它们都是DataFrame。如果输出超过几行,Pandas会以第一种格式显示摘要信息,因此不会填满您的屏幕。

如果您想要完整显示,可以在DataFrame上使用.to_string()方法。也就是说,如果df是您的数据框,则可以print df.to_string()查看所有数据,即使数据很长。

答案 1 :(得分:3)

在这两种情况下,read_csv都会返回一个DataFrame。但是,当您打印DataFrame时,会调用其__str__方法,并且此方法可能会选择以不同方式表示DataFrame,具体取决于其维度(列,行和总宽度)。

默认情况下,Pandas最多显示20列和60行。如果DataFrame超出这些维度,则它使用汇总格式,例如

<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)

要显示完整的DataFrame,您可以更改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)