我有一个包含国家/地区年份值的数据框。我想计算年份之间每个国家/地区的百分比变化
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'的'groups'创建新数据框?
答案 0 :(得分:2)
只需将代码放入函数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
希望它有所帮助。