我在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
对象?
答案 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_columns
,display.max_rows
和display.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)