我试图找出每个独特组的 Value
的周期性增长,按(Company
,Group
, 和 日期
).
Company Group Date Value
A X 2015-01 1
A X 2015-02 2
A X 2015-03 1.5
A XX 2015-01 1
A XX 2015-02 1.5
A XX 2015-03 0.75
A XX 2015-04 1
B Y 2015-01 1
B Y 2015-02 1.5
B Y 2015-03 2
B Y 2015-04 3
B YY 2015-01 2
B YY 2015-02 2.5
B YY 2015-03 3
我试过:
df.groupby(['Date','Company','Group']).pct_change()
但这会返回所有 NaN。
我要找的结果是:
Company Group Date Value/People
A X 2015-01 NaN
A X 2015-02 1.0
A X 2015-03 -0.25
A XX 2015-01 NaN
A XX 2015-02 0.5
A XX 2015-03 -0.5
A XX 2015-04 0.33
B Y 2015-01 NaN
B Y 2015-02 0.5
B Y 2015-03 0.33
B Y 2015-04 0.5
B YY 2015-01 NaN
B YY 2015-02 0.25
B YY 2015-03 0.2
最佳答案
您想将您的日期放入行索引并将组/公司放入列
d1 = df.set_index(['Date', 'Company', 'Group']).Value.unstack(['Company', 'Group'])
d1
然后使用pct_change
d1.pct_change()
或
使用分组
df['pct'] = df.sort_values('Date').groupby(['Company', 'Group']).Value.pct_change()
df
关于python - Pandas groupby 多列,使用 pct_change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273251/