【问题标题】:Combine groups after iteration迭代后合并组
【发布时间】:2014-03-27 20:33:23
【问题描述】:

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

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 的“分组”中创建一个新数据框?

【问题讨论】:

    标签: python pandas dataframe pandas-groupby


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      相关资源
      最近更新 更多