在日期之间选择熊猫数据框中的行,与年份无关

时间:2019-09-26 13:15:46

标签: python-3.x pandas

我有一个带有日期时间索引的熊猫数据框。为简单起见,假设我的数据从2016年9月1日到2019年9月1日,每行对应一天。

我想选择日期在11月15日到3月15日之间的所有行,而不考虑年份。对于我的示例数据集,这将是:2016年11月15日-2017年3月15日,2017年11月15日-2018年3月15日以及2018年11月15日-2019年3月15日。

在两个日期时间之间(当已知年份)选择行非常简单,但是当我们不关心年份时,我想不出一种简单的方法来做到这一点。理想情况下,我想在此处进行设置,以便可以轻松更改范围的开始和结束日期(而不是11月15日开始,我可以11月21日开始,等等)。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这就是我要做的:

df = pd.DataFrame({'date': pd.date_range('2016-09-01','2019-09-01', freq='D')})

# dummy variable for filter
s = df['date'].dt.month * 100 + df['date'].dt.day

# filter out the day between 3/16 and 11/14:
df[~s.between(316,1114)].head()

输出:

         date
75 2016-11-15
76 2016-11-16
77 2016-11-17
78 2016-11-18
79 2016-11-19
相关问题