其他分享
首页 > 其他分享> > 迭代后合并组

迭代后合并组

作者:互联网

我有一个数据框,其中包含国家和年份的值:

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