迭代后合并组
作者:互联网
我有一个数据框,其中包含国家和年份的值:
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的“分组”创建新数据框?
解决方法:
只需将代码放入函数中并使用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
标签:pandas-groupby,pandas,dataframe,python 来源: https://codeday.me/bug/20191122/2056729.html