从Pandas DataFrame中选择日期范围

时间:2017-10-14 08:44:01

标签: python pandas date

我在DF中有一个已转换为YYYY-MM格式并需要选择范围的日期列表。这就是我正在尝试的:

#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创建一个datetime列?有人可以帮忙吗? 感谢。

1 个答案:

答案 0 :(得分:0)

您不需要实际的日期时间类型列或查询值来实现此目的。保持简单:

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

这给出了:

      date
0  2016-01
1  2016-02

它的工作原理是因为ISO 8601日期字符串可以像纯字符串一样进行排序。 '2016-06'在'2016-05'之后出现,等等。