2017-10-14 601 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'等。