为了账号安全,请及时绑定邮箱和手机立即绑定

计算列的同比增长

计算列的同比增长

墨色风雨 2024-01-15 21:16:23
我正在尝试计算列之间的同比变化。可以说我有下面的 dfdatedf = pd.DataFrame({'ID':list('12345'),'1/1/2019':[1,2,3,4,5],'2/1/2019':[1,2,3,4,5],'3/1/2019':[1,2,3,4,5],'1/1/2020':[2,4,6,8,10],'2/1/2020':[2,4,6,8,10],'3/1/2020':[2,4,6,8,10]})为了达到下面这个结果,我需要进行什么转换才能显示 100% 的同比增益。endingdf = pd.DataFrame({'ID':list('12345'),'1/1/2020':[1,1,1,1,1],'2/1/2020':[1,1,1,1,1],'3/1/2020':[1,1,1,1,1]})这是我尝试过的代码,但它不起作用。我正在使用的真实数据已有多年。just_dates = datedf.loc[:,'1/1/2019':] just_dates.columns = pd.to_datetime(just_dates.columns) just_dates.groupby(pd.Grouper(level=0,freq='M',axis=1),axis=1).pct_change()
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

尝试这个:


result = datedf.set_index('ID')

result.columns = pd.to_datetime(result.columns)

result = result.pct_change(periods=12, freq='MS', axis=1)

结果:


    2019-01-01  2019-02-01  2019-03-01  2020-01-01  2020-02-01  2020-03-01

ID                                                                        

1          NaN         NaN         NaN         1.0         1.0         1.0

2          NaN         NaN         NaN         1.0         1.0         1.0

3          NaN         NaN         NaN         1.0         1.0         1.0

4          NaN         NaN         NaN         1.0         1.0         1.0

5          NaN         NaN         NaN         1.0         1.0         1.0


查看完整回答
反对 回复 2024-01-15
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信