Накопительная пользовательская функция - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь добавить столбец в кадр данных pandas

import pandas as pd
df = pd.DataFrame([['a',1],['b',0],['c',1],['d',1],['e',0],['f',1]])

, чтобы он содержал результат кумулятивной пользовательской функции

a --> (total + 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)

, но мне сложно понять, как его кодировать.

У вас есть идеи?

большое спасибо.

1 Ответ

0 голосов
/ 11 июня 2018

Рекомендую для цикла ..

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]
...