减少(折叠)熊猫

时间:2017-03-28 16:48:39

标签: python pandas

Pandas DataFrame是否有任何缩减/折叠实现? 例如,我想在数据框cost中的df列中使用lambda acc, x之类的内容获取数字总和,其中x是一个DataFrame行。

我该怎么办?

P.S。我知道.sum(),但还有许多其他可能的\acc,x -> ...函数。

1 个答案:

答案 0 :(得分:1)

可以通过以下方式进行快速折叠(用您自己的功能替换plus):

import numpy as np
def accum(op,ser):
    u_op = np.frompyfunc(op, 2, 1) # two inputs, one output
    return u_op.accumulate(ser, dtype=np.object)
def plus(x,y):
    return x+y
accum(plus,np.arange(10))

您得到:

array([0, 1, 3, 6, 10, 15, 21, 28, 36, 45], dtype=object)

这适用于numpy系列,因此也适用于pandas数据框的组件。拥有一个直接适用于数据框的解决方案,以使多个系列可以组合在一起,将是很有趣的。