Python 在指定的频率选项上计算pct_变化
我想计算周/日数据帧的1年、2年、3年增长率:Python 在指定的频率选项上计算pct_变化,python,pandas,database,Python,Pandas,Database,我想计算周/日数据帧的1年、2年、3年增长率: start = '20100101' end = '20201117' df_ts = pd.DataFrame(index=pd.bdate_range(start=start, end=end, freq='D')) df_ts['valeur1'] = range(1, df_ts.shape[0]+1) df_ts['gr'] = 100*df_ts.pct_change(periods=1, freq='Y) df_ts 我认为pc
start = '20100101'
end = '20201117'
df_ts = pd.DataFrame(index=pd.bdate_range(start=start, end=end, freq='D'))
df_ts['valeur1'] = range(1, df_ts.shape[0]+1)
df_ts['gr'] = 100*df_ts.pct_change(periods=1, freq='Y)
df_ts
我认为pct\u change(periods=n,freq='Y')
是一个很好的方法,但是我用这个简单的日期得到了一个错误结果
我需要强调的是,在我的数据中,我有每周/每天的数据,并且我操作其他操作,因此我需要将其放入apply(lambda x:x.pct_change(periods=n,freq='Y')
中
有什么简单的建议吗?您正在为列分配一个新的数据框,因为您对数据框而不是列进行了
.pct\u更改。请尝试以下操作:
df_ts['gr'] = df_ts['valeur1'].pct_change(periods=1, freq='Y')
它产生日历性能,但我希望滚动1年(2年…)增长率我已经得到了:freq=pd.DateOffset(years=1)
而不是freq='Y'