【发布时间】:2017-09-16 00:01:49
【问题描述】:
我在 Jupyter notebook 中创建 DataFrame 对象:
data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000, 2001, 2002, 2000, 2001],
'pop':[1.5, 2.0, 3.6, 2.4, 2.9]}
frame = DataFrame(data)
当我提取列'年份'时,没关系:
In [30]: frame.year
Out[30]: 0 2000
1 2001
2 2002
3 2000
4 2001
Name: year, dtype: int64
但是当我提取列'pop'(frame.pop)时,结果是:
Out[31]:
<bound method NDFrame.pop of pop state year
0 1.5 Ohio 2000
1 2.0 Ohio 2001
2 3.6 Ohio 2002
3 2.4 Nevada 2000
4 2.9 Nevada 2001>
为什么结果与“frame.year”不一样?
【问题讨论】:
-
pop是dataframe的保留方法,请改用frame['pop'] -
pop是保留的,请尝试更改列名以简化 DF 的使用。例如frame.rename(columns={'pop':'population'}) -
使用
frame['pop']而不是frame.pop以避免与内置函数的名称冲突;如果名称包含空格,则也是必需的。根据@cs95 的回答。