熊猫头命令没有给出预期的结果

时间:2013-12-30 19:51:55

标签: python pandas kaggle

我无法让熊猫功能为我工作。这是一个简单的例子。我使用以下命令将kaggle数据集读入数据框:

import pandas as pd
train_data=pd.read_csv('kaggle_train.csv',header=None)

然后我使用head命令询问前五个数据行:

train_data.head()

我没有获得前五行数据,而是得到了这个输出:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns:
X0     5  non-null values
X1     5  non-null values
X2     5  non-null values
X3     5  non-null values
X4     5  non-null values
X5     5  non-null values
X6     5  non-null values
X7     5  non-null values
X8     5  non-null values
X9     5  non-null values
X10    5  non-null values
X11    5  non-null values
X12    5  non-null values
X13    5  non-null values
X14    5  non-null values
X15    5  non-null values
X16    5  non-null values
X17    5  non-null values
X18    5  non-null values
X19    5  non-null values
X20    5  non-null values
X21    5  non-null values
X22    5  non-null values
X23    5  non-null values
X24    5  non-null values
X25    5  non-null values
X26    5  non-null values
X27    5  non-null values
X28    5  non-null values
X29    5  non-null values
X30    5  non-null values
X31    5  non-null values
X32    5  non-null values
X33    5  non-null values
X34    5  non-null values
X35    5  non-null values
X36    5  non-null values
X37    5  non-null values
X38    5  non-null values
X39    5  non-null values
X40    5  non-null values
dtypes: float64(40), int64(1)

任何人都可以解释为什么会这样吗?

我在运行Windows Vista Home Premium Service Pack 2的HP Pavilion笔记本电脑上的IPython窗口版本0.13.1-1中运行Python 2.7.3

2 个答案:

答案 0 :(得分:2)

默认情况下,如果pandas有太多列以可读方式显示,则会显示输出的摘要形式。您可以通过执行print train_data.head().to_string()强制它显示实际数据,但由于您有很多列,因此输出可能难以阅读。

答案 1 :(得分:2)

正如在另一个答案中所提到的,这是DataFrame的摘要视图(因为要显示的列太多*)。您可以使用iloc /;

查看第一行和第一列
In [11]: df = pd.DataFrame(np.random.randn(100,100))

In [12]: df.iloc[:3, :4]  # first 3 rows and 4 columns
Out[12]: 
          0         1         2         3
0  1.271254 -1.057603  0.411799  0.523563
1  0.828735  0.306329  0.508435 -1.214766
2  0.684236 -1.541779  2.354181 -1.036631

* 默认情况下为20,但您可以在选项中更改它(超过列数):

pd.options.display.max_columns = 101

现在df.head()将按预期显示所有行&#34;&#34;。

如上所述,在0.13中,此行为正在更改以默认显示更多帧(直到第一个max_columns列):

In [21]: pd.options.display.max_columns = 5  # by default this is 20

In [22]: df.head()
Out[22]: 
          0         1         2         3         4    
0 -0.269232  0.059875  1.420564  2.106847  1.999374 ...
1 -0.625981 -0.459105 -0.818499 -0.375799  2.619382 ...
2 -1.027394 -0.084883  0.294238  0.636856 -0.356340 ...
3  1.735632  0.235712 -0.283334 -0.191722 -0.885285 ...
4 -0.154700  1.640423  1.021390  0.636728  0.918846 ...

[5 rows x 100 columns]
相关问题