我有一个数据框,其中包含一组日期(包含为 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 回答
森林海
TA贡献2011条经验 获得超2个赞
好吧,我会在这里使用 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))
添加回答
举报
0/150
提交
取消