python-3.x - 选择日期之间的 Pandas 数据框中的行,无论年份如何

标签 python-3.x pandas

我有一个带有日期时间索引的 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 日。

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

提前感谢您的帮助!

最佳答案

这是我会做的:

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

关于python-3.x - 选择日期之间的 Pandas 数据框中的行,无论年份如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58117659/

相关文章:

python - python 对包含字符串和整数的列表中的元素求和,并将答案放入另一个列表中

python - 用于获取字符后字符串中所有数字的正则表达式

python - 按值获取 python 字典中的项目位置

python - Matplotlib 等值线图绘制两个不同的数据

python - 用 Pandas 读取日志文件

python - 在 Pandas 中给SparseArray赋值吗?

python - Pandas/Python 如何在保留 df 结构的同时切换数据框中的索引/列?

python-3.x - Pandas 数据阅读器

python - pd.qcut 返回负值

python - 如何在 Python 中动态命名数据框?