从 pandas 数据框中的日期获取财政年度并添加为新列

Gla*_*rk1 7 datetime dataframe pandas

这一定很简单,但找不到答案 - 有一个带有日期的数据框,我只需要添加一个财政年度列(4月1日 - 3月31日) - 例如 15/5/19 将返回 2019 或 2019 - 20.

我可能可以用 for 循环来做到这一点,但我猜数据框中还有更好的方法?

if base_date.month > 3:
    fin_year = base_date.year
else:
    fin_year = base_date.year-1
Run Code Online (Sandbox Code Playgroud)

Qua*_*ang 10

实际上,有一个函数可以做到这一点:

s.dt.to_period('Q-OCT').dt.qyear
Run Code Online (Sandbox Code Playgroud)


Bra*_*don 6

假设您的日期列是base_date并且是日期时间对象,这将起作用:

df['financial_year'] = df['base_date'].map(lambda x: x.year if x.month > 3 else x.year-1)
Run Code Online (Sandbox Code Playgroud)