date_time={'Date_Fields':[datetime.date(2014,5,1),datetime.date(2015,5,1),datetime.date(2016,5,1),datetime.date(2018,5,1)]}
date_time=pd.DataFrame(date_time)
date_time["Analysis Period"]=""
如果聲明只是一個小故事,我需要創建一個名爲「分析期」的Ameneded列,將36個月期間拆分爲3個期間。例如(2014年5月 - 2015年4月),(2015年5月 - 2016年4月)和(2016年5月 - 2017年4月)。這是與我們的本地工具一起使用的。如果要將日期/時間拆分爲期間
我能夠用下面的代碼完成這項壯舉,但是我想知道是否有更有效的方法來做到這一點,而無需手動更新日期範圍。 同樣在下面的if語句中,最初我試圖用兩個對應的elif語句來做一個if語句。但是,這似乎沒有鍛鍊。有人能解釋爲什麼?
謝謝
if ((date_time["Date_Fields"]>= datetime.date(2014,5,1)) & (date_time["Date_Fields"]<=datetime.date(2015,4,30))) is not False:
date_time["Analysis Period"]=np.where(((date_time["Date_Fields"]>= datetime.date(2014,5,1)) & (date_time["Date_Fields"]<=datetime.date(2015,4,30))),'May 2014 to April 2015', date_time["Analysis Period"])
if ((date_time["Date_Fields"]>= datetime.date(2015,5,1)) & (date_time["Date_Fields"]<=datetime.date(2016,4,30))) is not False:
date_time["Analysis Period"]=np.where(((date_time["Date_Fields"]>= datetime.date(2015,5,1)) & (date_time["Date_Fields"]<=datetime.date(2016,4,30))),'May 2015 to April 2016', date_time["Analysis Period"])
if ((date_time["Date_Fields"]>= datetime.date(2016,5,1)) & (date_time["Date_Fields"]<=datetime.date(2017,4,30))) is not False:
date_time["Analysis Period"]=np.where(((date_time["Date_Fields"]>= datetime.date(2016,5,1)) & (date_time["Date_Fields"]<=datetime.date(2017,4,30))),'May 2016 to April 2017',date_time["Analysis Period"])
您需要'pd.cut()'。 – DyZ
謝謝,將其解讀。 – Bjc51192