Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 累积自定义函数_Python_Pandas_Apply - Fatal编程技术网

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根据我的理解,行是很难实现的。知道了,我正在使用循环解决方案,让我们看看是否有人有其他想法。