从熊猫数据框中的日期获取财务年度并添加为新列

时间:2019-12-04 17:37:41

标签: pandas dataframe datetime

这必须非常简单,但找不到答案-具有日期的数据框,我只需要添加一个财务年度列(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

3 个答案:

答案 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减去以将上一个视为一年的开始。