对数据帧中的所有值求和

时间:2015-09-01 20:51:34

标签: python pandas

我试图将数据框中的所有值合并为一个数字。

例如,使用数据框

            BBG.XAMS.FUR.S_pnl_pos_cost  BBG.XAMS.MT.S_pnl_pos_cost
date                                                               
2015-03-23                    -0.674996                   -0.674997
2015-03-24                    82.704951                   11.868748
2015-03-25                   -11.027327                   84.160210
2015-03-26                   228.426675                 -131.901556
2015-03-27                   -99.744986                  214.579858

我想要返回值377.71658。

我尝试过df.sum(),但只按列进行求和。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:7)

我愿意

>>> df.values.sum()
377.71658000000002
如果帧是全数字的话,

会下降到底层的numpy数组,并且可能是最快的。但是还有很多其他选择:

>>> %timeit df.values.sum()
100000 loops, best of 3: 6.27 µs per loop
>>> %timeit df.sum().sum()
10000 loops, best of 3: 109 µs per loop
>>> %timeit df.unstack().sum()
1000 loops, best of 3: 233 µs per loop
>>> %timeit df.stack().sum()
1000 loops, best of 3: 190 µs per loop

答案 1 :(得分:3)

只需对列总和求和:

df.sum().sum()

答案 2 :(得分:0)

如果数据帧包含非数字数据,并且只想获取整数之和,请执行以下操作:

df.sum(numeric_only=True).sum()