python - 从 Pandas DataFrame 中选择日期范围

标签 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 制作日期时间列?有人可以帮忙吗? 谢谢。

最佳答案

您不需要实际的日期时间类型列或查询值即可使其工作。保持简单:

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/

相关文章:

python - 我在使用 im.show() 时遇到错误

python - 计算多个唯一行的结果

python - Curve_fit 到 apply_along_axis。如何加快速度?

python - 如何使用 statsmodels 获取多元线性回归的标准化(Beta)系数

python - 使用 Python pandas 根据条件将行值复制到另一列

python - 在 python 3 中打开浏览器页面并每隔 n 小时截取一次屏幕截图

python - 多级列和行索引和乘法

c++ - 我找不到公式

r - 将字符转换为日期

regex - 从 R 中的字符串中提取日期