Python 累积自定义函数
我正在尝试向数据帧添加列Python 累积自定义函数,python,pandas,apply,Python,Pandas,Apply,我正在尝试向数据帧添加列 import pandas as pd df = pd.DataFrame([['a',1],['b',0],['c',1],['d',1],['e',0],['f',1]]) 使其包含累积自定义函数的结果 a --> (total + a) * a 也就是说,它取值a,将其与总和相加,然后乘以结果。在我的示例中,我希望将以下内容作为输出: pd.DataFrame([['a',1,1],['b',0,0],['c',1,1],['d',1,2],['e',0
import pandas as pd
df = pd.DataFrame([['a',1],['b',0],['c',1],['d',1],['e',0],['f',1]])
使其包含累积自定义函数的结果
a --> (total + a) * a
也就是说,它取值a,将其与总和相加,然后乘以结果。在我的示例中,我希望将以下内容作为输出:
pd.DataFrame([['a',1,1],['b',0,0],['c',1,1],['d',1,2],['e',0,0],['f',1,1]])
我知道这可以通过使用
df.expanding.apply(some_lambda_function)
但是我很难理解如何编写代码
你知道吗
非常感谢。我将为loop推荐
start=0
total=[]
for x ,y in df.iterrows():
start=(y[1]+start)*y[1]
total.append(start)
total
Out[201]: [1, 0, 1, 2, 0, 1]
这里的a是什么?为什么输入中的
f
多了一列,输出少了一列?“a”是输入编号。在示例中的dataframe中是数字列的一个元素。@HarvIpan,谢谢,我更正了打印错误。我仍然不清楚。非常感谢,但我想知道是否有办法通过使用pandas窗口函数避免循环。无论如何,我不知道性能是否会提高…@andream根据我的理解,行是很难实现的。知道了,我正在使用循环解决方案,让我们看看是否有人有其他想法。