Pandas DataFrame是否有任何缩减/折叠实现?
例如,我想在数据框cost
中的df
列中使用lambda acc, x
之类的内容获取数字总和,其中x
是一个DataFrame行。
我该怎么办?
P.S。我知道.sum(),但还有许多其他可能的\acc,x -> ...
函数。
答案 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数据框的组件。拥有一个直接适用于数据框的解决方案,以使多个系列可以组合在一起,将是很有趣的。