【问题标题】:Calculate year-on-year change in Pandas计算 Pandas 的同比变化
【发布时间】:2017-05-30 15:34:50
【问题描述】:

我有以下几点:

data = pd.DataFrame({'ID' : (1,2,1,2,1,2),
            'year': (1,1,2,2,3,3),
            'total_change' : (2,1,7,4,14,6)})

我想计算每行的绝对同比变化,因此需要从上一年减去当前年份(对于 total_change 变量。

我希望输出如下所示,我已将输出列标记为年度变化:

output = pd.DataFrame({'ID' : (1,2,1,2,1,2),
            'year': (1,1,2,2,3,3),
            'total_change' : (2,1,7,4,14,6),
            'annual_change' : (2,1,5,3,7,2)})

【问题讨论】:

  • 您需要diffdata.groupby('ID').total_change.diff()

标签: python pandas temporal


【解决方案1】:
output = data.assign(annual_change=data.groupby("ID")['total_change'].apply(lambda x:x.diff().fillna(x)))

输出:

   ID  total_change  year  annual_change
0   1             2     1            2.0
1   2             1     1            1.0
2   1             7     2            5.0
3   2             4     2            3.0
4   1            14     3            7.0
5   2             6     3            2.0

【讨论】:

    猜你喜欢
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多