Pandas:无法对日期列进行分类以获取财政年度

我有一个数据框,其中包含一组日期(包含为 df 的样本),我试图将其分类为相应的会计年度 - 用于时间序列分析;即 2012 年 4 月至 2013 年 3 月等。如果我运行 FOR 循环,我可以做到这一点,但我需要很长时间才能做到这一点。我想做的另一个选择是使用 pd.cut 将数据分箱,我不确定这是最好的做法,因为我遇到了一些查询,这些查询表明它是由于 python 中的一个错误导致的需要将边转换为数值


x=np.arange('2018-04-02', '2020-04-20',50, dtype= np.datetime64)

df=pd.DataFrame(x)


df["Year"]=""

bin_3=['2018-03-31','2019-03-31','2020-03-31','2021-03-31']

tag=['FY18-19','FY19-20','FY20-21']

df["Year"]=pd.cut(df5["Date of Issue"],bin_3,labels=tag)

关于如何在不牺牲处理时间的情况下使其工作的任何建议?


素胚勾勒不出你
浏览 107回答 1
1回答

森林海

好吧,我会在这里使用 apply,通常是 lambda。但是为了清楚起见写了一个函数。假设您在“日期”列中有要映射的日期def get_fiscal_year(date):    m = date.month    yy = date.year % 100    fy = None    if m > 3:        fy = f"FY{yy}-{yy+1}"    else:        fy = f"FY{yy-1}-{yy}"    return fydf['FiscalYear'] = df['Date'].apply(lambda dt: get_fiscal_year(dt))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python