我有这个数据集['Sales']
的分组值['Fiscal Quarter']
的YYYY-Qx
格式。我想将一个季度的值与上一年的同一季度进行比较(例如,2019-Q2与2018-Q2)。
我正在以手动方式进行操作,创建了一个新列Prev FY
并将值上移4次以达到匹配值,并且它工作正常。
x = 4
df['Prev FY'] = df['Sales'].shift(x)
有时会丢失一些四分之一的数据,因此移四次就不再起作用。我想改进代码以使用该['Fiscal Quarter']
列自动找到正确的行。
在这个问题上有帮助吗?
你需要PeriodIndex
再使用参数freq
在Series.shift
:
df = pd.DataFrame({'Fiscal Quarter':['2017-Q2','2018-Q2','2019-Q1','2019-Q2'],
'Sales':[10,20,30,40]})
df['Fiscal Quarter'] = pd.to_datetime(df['Fiscal Quarter']).dt.to_period('Q')
df = df.set_index('Fiscal Quarter')
df['Prev FY'] = df['Sales'].shift(4, freq='Q')
print (df)
Sales Prev FY
Fiscal Quarter
2017Q2 10 NaN
2018Q2 20 10.0
2019Q1 30 NaN
2019Q2 40 20.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句