2017-10-14 261 views
1

我有一個已經轉換爲YYYY-MM格式並需要選擇範圍的DF中的日期列表。這是我想要的:從Pandas DataFrame中選擇日期範圍

#create dataframe  
data = ['2016-01','2016-02','2016-09','2016-10','2016-11','2017-04','2017-05','2017-06','2017-07','2017-08'] 
df = pd.DataFrame(data, columns = {'date'}) 

#lookup range 
df[df["date"].isin(pd.date_range('2016-01', '2016-06'))] 

它似乎沒有工作,因爲日期列不再是日期時間列。格式必須爲YYYY-MM。所以我想問題是,我如何使用YYYY-MM創建日期時間列?有人可以幫忙嗎? 謝謝。

回答

0

您不需要實際的日期時間類型列或查詢值就可以工作。保持簡單:

df[df.date.between('2016-01', '2016-06')] 

這給:

 date 
0 2016-01 
1 2016-02 

它的工作原理,因爲ISO 8601的日期字符串可以,好像他們是普通的字符串進行排序。 '2016-06'之後是'2016-05'等。