这必须非常简单,但找不到答案-具有日期的数据框,我只需要添加一个财务年度列(4月1日至3月31日),例如19/5/5将返回2019或2019-20。
我可能可以通过for循环来做到这一点,但是我猜想在数据框中还有更好的方法吗?
if base_date.month > 3:
fin_year = base_date.year
else:
fin_year = base_date.year-1
答案 0 :(得分:1)
这将起作用,假设您的日期列为base_date
并且是日期时间对象:
df['financial_year'] = df['base_date'].map(lambda x: x.year if x.month > 3 else x.year-1)
答案 1 :(得分:0)
实际上,有一个功能:
s.dt.to_period('Q-OCT').dt.qyear
答案 2 :(得分:0)
PeriodIndex
对象具有as_freq
方法用于重新铸造为年度系列,该方法使您可以指定认为年份开始的月份。
df['financial_year'] = df['base_date'].asfreq('A-APR') - 1
将1减去以将上一个视为一年的开始。