大熊猫队的结果错误

时间:2014-07-23 13:25:28

标签: python pandas

names1880 = pd.read_csv('test.txt', names=['name', 'sex', 'births'])
names1880.groupby('sex').births.sum()

使用1880年(我们的婴儿名字)的样本文件。预期的结果是这样的......

F 90993
M 110493
Name: births

但我每行都会得到随机总数。

0     58385
1     35818
2     33920
...
1896    57
1897    57
1898    57

如何为男性和女性获得正确的结果?

更新: 以下代码似乎按预期工作。这是否意味着我必须打破对象并且不能用作方法?

mygroup=names1880.groupby('sex')
mygroup['births'].sum()

以下是test.txt文件中的前10行

Mary,F,7065
Anna,F,2604
Emma,F,2003
Elizabeth,F,1939
Minnie,F,1746
Margaret,F,1578
Ida,F,1472
Alice,F,1414
Bertha,F,1320
Sarah,F,1288

如果重要的话,我正在使用pandas版本0.7.0。

1 个答案:

答案 0 :(得分:1)

你写的内容效果很好。 当我复制您提供的数据样本时:

import pandas as pd 
data = pd.read_clipboard(sep=',', header = None, 
                             names = ['name', 'sex', 'births'])

data.groupby('sex').births.sum()

打印:

sex
F      22429

你不必破坏任何东西,但你总能做到! (也许你的问题是因为你的Pandas版本太旧了。)

当我添加一些男人时:

Mary,F,7065
Anna,F,2604
Emma,F,2003
Elizabeth,F,1939
Minnie,F,1746
Margaret,F,1578
Ida,F,1472
Jeremy,M,1477
Alice,F,1414
Bertha,F,1320
Sarah,F,1288
Jonathan,M,1255

这里印刷的是预期的:

sex
F      22429
M       2732
Name: births, dtype: int64