我在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列?有人可以帮忙吗? 感谢。
答案 0 :(得分:0)
您不需要实际的日期时间类型列或查询值来实现此目的。保持简单:
df[df.date.between('2016-01', '2016-06')]
这给出了:
date
0 2016-01
1 2016-02
它的工作原理是因为ISO 8601日期字符串可以像纯字符串一样进行排序。 '2016-06'在'2016-05'之后出现,等等。