我在 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 制作日期时间列?有人可以帮忙吗? 谢谢。
最佳答案
您不需要实际的日期时间类型列或查询值即可使其工作。保持简单:
df[df.date.between('2016-01', '2016-06')]
这给出了:
date
0 2016-01
1 2016-02
它之所以有效,是因为 ISO 8601 日期字符串可以像普通字符串一样进行排序。 “2016-06”出现在“2016-05”之后,依此类推。
关于python - 从 Pandas DataFrame 中选择日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46742611/