我有一个数据集,其中包含一组日期(样本包含在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)
关于在不牺牲处理时间的情况下如何使其工作的任何建议?
答案 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))