熊猫:无法分类日期列以获取财政年度

时间:2020-04-26 19:30:48

标签: python 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)

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

1 个答案:

答案 0 :(得分:0)

嗯,我会在这里使用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 fy


df['FiscalYear'] = df['Date'].apply(lambda dt: get_fiscal_year(dt))