2015-03-13 14 views

Odpowiedz

16

Można użyć pd.expanding_apply. Poniżej znajduje się prosty przykład, który tak naprawdę zawiera skumulowaną sumę, ale możesz napisać, jaka jest dla ciebie funkcja.

import pandas as pd 

df = pd.DataFrame({'data':[10*i for i in range(0,10)]}) 

def sum_(x): 
    return sum(x) 


df['example'] = pd.expanding_apply(df['data'], sum_) 

print(df) 

# data example 
#0  0  0 
#1 10  10 
#2 20  30 
#3 30  60 
#4 40  100 
#5 50  150 
#6 60  210 
#7 70  280 
#8 80  360 
#9 90  450 
+1

W nowych pandach> = 0.18.0 zostaje zastąpione przez DataFrame.expanding(). Apply() – luca

Powiązane problemy