2014-06-11 17 views
2

在熊猫0.14中,sum(DF)返回标题的总和,而不是条目的总和。 因此,可以得到,例如:为什么sum(DF)的行为与DF.sum()不同?

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

是否有一个合乎逻辑的理由,一个用例呢?

回答

4

的buildin功能sum()工作为:

sum(list(iter(df))) 

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

对于DataFrame,您不应该使用buildin 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 
+0

及时提醒的是numpy的和熊猫做一个优秀的团队。 – Emre

相关问题