书中代码示例的不同结果:Python for Data Analysis

时间:2014-04-17 02:38:24

标签: python pandas data-analysis

如果有人对本书感兴趣,我对“Python for Data Analysis”这本书有疑问。

在第244页上运行示例(绘图地图:可视化海地地震危机数据)之后,我的dummy_frame.ix结果看起来与本书所说的内容不同:

dummy_frame = DataFrame(np.zeros((len(data), len(code_index))),
index=data.index, columns=code_index)

If all goes well, dummy_frame should look something like this:

In [107]: dummy_frame.ix[:, :6]
Out[107]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 3569 entries, 0 to 3592
Data columns:
1 3569 non-null values
1a 3569 non-null values
1b 3569 non-null values
1c 3569 non-null values
1d 3569 non-null values
2 3569 non-null values
dtypes: float64(6)

我的结果是:

In [61]: dummy_frame.ix[:, :6]
Out[61]:
    1  1a  1b  1c  1d  2
0   0   0   0   0   0  0
4   0   0   0   0   0  0
5   0   0   0   0   0  0
6   0   0   0   0   0  0
7   0   0   0   0   0  0
<snip>
57  0   0   0   0   0  0
58  0   0   0   0   0  0
59  0   0   0   0   0  0
60  0   0   0   0   0  0
61  0   0   0   0   0  0
62  0   0   0   0   0  0
   .. ... ... ... ... ..

[3569 rows x 6 columns]

我检查了它errata page,但那里没有提到。我确保这里没有拼写错误,并且在两台不同的机器上运行它,但结果是一样的。

请问任何建议?

编辑:

谢谢dartdog,joris!我没有注意到Dataframe显示已更改。现在我可以用.info()

获得相同的结果
In [5]: dummy_frame.ix[:, :6].info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 3569 entries, 0 to 3592
Data columns (total 6 columns):
1     3569 non-null float64
1a    3569 non-null float64
1b    3569 non-null float64
1c    3569 non-null float64
1d    3569 non-null float64
2     3569 non-null float64
dtypes: float64(6)

2 个答案:

答案 0 :(得分:2)

就我所见,这是同样的结果,Pandas一直在改变数据帧的默认显示,书中的例子是摘要显示,你得到的显示是显示开始/结束的较新格式。阅读显示选项...在您正在使用的相应版本文档中

答案 1 :(得分:1)

我是编程新手并且对该代码了解不多,但问题可能是你正在运行的python版本。 Python 2.7和3.3的工作方式不同,本书可能基于你使用另一本书。检查版本。