python - 累积自定义函数

标签 python pandas apply

我正在尝试向 Pandas 数据框添加一列

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)

但是我在理解如何编码方面有些困难。

你有什么想法吗?

非常感谢。

最佳答案

我会推荐for循环..

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]

关于python - 累积自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50798952/

相关文章:

python - 向量化 pandas 中的 apply 函数

python - 绘制箱线图时如何处理 NaN 值

python - 如何将每分钟数据的表转换为每小时数据的表?

php - 从数据库服务器端创建绘图并在客户端可视化

python - Selenium 显式等待在 Python 中无法正常工作

python - 如何根据 id 外部合并 3 个或更多数据集并使用一列进行比较?

r - 计算 apply 语句中的百分比 (R)

r - 大规模使用唯一值(for loops、apply 或 plyr)

python - 有没有代码可以获取文章的页数?

python - 类型错误 : a float is required