为什么sum(DF)与DF.sum()的行为不同?

时间:2014-06-11 06:03:29

标签: python pandas

在pandas 0.14中,sum(DF)返回标题的总和,而不是条目的总和。 因此,例如:

>df = pandas.DataFrame([1,2,3])
>print(df)
   0
0  1
1  2
2  3
>sum(df)
0

是否有合理的理由,这是一个用例?

2 个答案:

答案 0 :(得分:5)

内置函数sum()的工作原理为:

sum(list(iter(df)))

iter(df)获取列名称的迭代器。

您不应该为DataFrame使用构建sum()

答案 1 :(得分:2)

或使用numpy.sum

In [43]:

df = pd.DataFrame([1,2,3])
print 'numpy:', np.sum(df)
print '.sum() method:',df.sum()
print 'buid-in:', sum(df)
numpy: 0    6
dtype: int64
.sum() method: 0    6
dtype: int64
buid-in: 0