本文介绍了用pct_change的 pandas 分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图找到按公司,组和日期分组的每个唯一组的价值在一段时间内的增长.
I'm trying to find the period over period growth in value for each unique group, grouped by Company, Group, and Date.
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.
but this returns all 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
推荐答案
您想将日期添加到行索引中,并将组/公司添加到列中
you want to get your date into the row index and groups/company into the columns
d1 = df.set_index(['Date', 'Company', 'Group']).Value.unstack(['Company', 'Group'])
d1
然后使用pct_change
d1.pct_change()
OR
和groupby
df['pct'] = df.sort_values('Date').groupby(['Company', 'Group']).Value.pct_change()
df
这篇关于用pct_change的 pandas 分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!