Pandas DataFrame 是否有任何减少/折叠实现?例如,我想获得一个名为列数之和cost在数据帧df,使用类似lambda acc, x,这里x是一个数据帧一行。
我该怎么办?
PS 我知道 .sum(),但还有许多其他可能的\acc,x -> ...功能。
可以通过以下方式实现快速折叠(替换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))
Run Code Online (Sandbox Code Playgroud)
你得到:
array([0, 1, 3, 6, 10, 15, 21, 28, 36, 45], dtype=object)
Run Code Online (Sandbox Code Playgroud)
这适用于 numpy 系列,因此也适用于 pandas 数据帧的组件。拥有一个直接适用于数据帧的解决方案将会很有趣,这样可以组合多个系列。