计算列的同比增长

我正在尝试计算列之间的同比变化。可以说我有下面的 df

datedf = 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()


墨色风雨
浏览 130回答 1
1回答

慕雪6442864

尝试这个: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-01ID                                                                        1          NaN         NaN         NaN         1.0         1.0         1.02          NaN         NaN         NaN         1.0         1.0         1.03          NaN         NaN         NaN         1.0         1.0         1.04          NaN         NaN         NaN         1.0         1.0         1.05          NaN         NaN         NaN         1.0         1.0         1.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python