2015-03-13 26 views

Trả lời

16

Bạn có thể sử dụng pd.expanding_apply. Dưới đây là một ví dụ đơn giản mà chỉ thực sự thực hiện một tổng tích lũy, nhưng bạn có thể viết bất kỳ hàm nào bạn muốn cho nó.

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

Trong gấu trúc mới> = 0.18.0, nó được thay thế bằng DataFrame.expanding(). Apply() – luca

Các vấn đề liên quan