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

6
在 pandas 0.14 中,sum(DF) 返回的是列头的总和,而不是条目的总和。因此,例如:
>df = pandas.DataFrame([1,2,3])
>print(df)
   0
0  1
1  2
2  3
>sum(df)
0

有没有逻辑上的原因或使用案例来支持这个做法?

2个回答

7

内置函数sum()的工作方式如下:

sum(list(iter(df)))

iter(df) 可以获得一个列名的迭代器。

在 DataFrame 中,不应使用内置的 sum() 方法。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接