【问题标题】:Sum all values in a dataframe汇总数据框中的所有值
【发布时间】:2015-09-01 20:51:33
【问题描述】:

我正在尝试将数据框中的所有值相加为一个数字。

以数据框为例

            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() 但这只能按列求和。

【问题讨论】:

标签: python pandas


【解决方案1】:

我愿意

>>> 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

【讨论】:

【解决方案2】:

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

df.sum(numeric_only=True).sum()
【解决方案3】:

只需对列总和求和:

df.sum().sum()
【解决方案4】:

要对数据框中的整数/浮点列求和,请使用以下查询:

df.sum()

要查找特定列值的总和,您可以使用列索引:

d = df.sum()
d[2]

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 2016-04-11
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多