2014-02-25 58 views
2

我有一個數據框包含國家和年份的值。我想通過國家來計算每個國家的百分比變化歲之間迭代後合併組

country year value 
US  2000 20 
JP  2000 10 
AU  2000 5 
US  2001 22 
JP  2001 12 
AU  2001 6 
US  2002 23 
JP  2002 14 
AU  2002 8 

所以我組,每組重複:

grouped=df.groupBy('country') 
for group in grouped: 
    group['pct']=group['value'].pct_change(periods=1)*100 

我如何可以創建一個包含從「分組」的新數據幀我新專欄'pct'?

回答

1

只要把你的代碼函數中的使用apply

def f(group): 
    group['pct']=group['value'].pct_change(periods=1)*100 
    return group  
print df.groupby('country').apply(f) 

輸出:

country year value  pct 
0  US 2000  20  NaN 
1  JP 2000  10  NaN 
2  AU 2000  5  NaN 
3  US 2001  22 10.000000 
4  JP 2001  12 20.000000 
5  AU 2001  6 20.000000 
6  US 2002  23 4.545455 
7  JP 2002  14 16.666667 
8  AU 2002  8 33.333333 

希望它能幫助。