我有一個數(shù)據(jù)框,其中包含一組日期(包含為 df 的樣本),我試圖將其分類為相應的會計年度 - 用于時間序列分析;即 2012 年 4 月至 2013 年 3 月等。如果我運行 FOR 循環(huán),我可以做到這一點,但我需要很長時間才能做到這一點。我想做的另一個選擇是使用 pd.cut 將數(shù)據(jù)分箱,我不確定這是最好的做法,因為我遇到了一些查詢,這些查詢表明它是由于 python 中的一個錯誤導致的需要將邊轉換為數(shù)值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條經(jīng)驗 獲得超2個贊
好吧,我會在這里使用 apply,通常是 lambda。但是為了清楚起見寫了一個函數(shù)。
假設您在“日期”列中有要映射的日期
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
提交
取消