大佬教程收集整理的这篇文章主要介绍了如何在不指定年份的情况下按日期范围过滤熊猫数据框,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
鉴于我有一个带有日期时间索引的熊猫数据框,如下所示:
1970-01-01
1970-01-02
1970-01-03
...
2021-04-26
2021-04-27
...
如何按日期范围过滤它,即“02-01”:“04-05”,结果如下:
1970-02-01
1970-02-02
...
1970-04-05
1971-02-01
1971-02-02
...
1971-04-05
...
您可以使用布尔索引,例如:
@H_703_5@m = ((df.index.month >= 2) & (df.index.month <= 4)) & ( (df.index.day >= 1) & (df.index.day <= 5) ) print(df[m])
打印:
col1
Date
1970-02-03 3
1970-02-04 4
1970-03-03 3
1970-04-04 5
编辑:您可以跳过 >=1
天:
@H_703_5@m = ((df.index.month >= 2) & (df.index.month <= 4)) & (df.index.day <= 5) print(df[m])
编辑 2:示例:
假设你有这个 df:
Date value
0 1970-02-03 1
1 1970-02-04 2
2 1970-02-05 3
3 1970-02-06 4
4 1970-02-07 5
5 1971-02-03 6
6 1971-02-04 7
7 1971-02-05 8
8 1971-02-06 9
9 1971-02-07 10
然后将“日期”列转换为日期时间,设置索引并对其进行过滤:
df["Date"] = pd.to_datetiR_233_11845@e(df["Date"],dayfirst=falsE)
df = df.set_index("Date")
m = ((df.index.month >= 2) & (df.index.month <= 4)) & (
(df.index.day >= 1) & (df.index.day <= 5)
)
print(df[m])
打印:
value
Date
1970-02-03 1
1970-02-04 2
1970-02-05 3
1971-02-03 6
1971-02-04 7
1971-02-05 8
编辑 3:
对于这个 df:
value
Date
1970-02-03 1
1970-02-27 2
1970-04-05 3
1970-05-06 44
1970-05-07 55
1970-02-03 1
1970-02-27 2
1970-04-05 3
1970-05-06 44
1970-05-07 55
此代码:
year_min = df.index.min().year
year_max = df.index.max().year
m = [false] * len(df)
for y in range(year_min,year_max + 1):
m = ((df.index >= f"{y}-02-01") & (df.index <= f"{y}-04-05")) | m
print(df[m])
打印:
value
Date
1970-02-03 1
1970-02-27 2
1970-04-05 3
1970-02-03 1
1970-02-27 2
1970-04-05 3
以上是大佬教程为你收集整理的如何在不指定年份的情况下按日期范围过滤熊猫数据框全部内容,希望文章能够帮你解决如何在不指定年份的情况下按日期范围过滤熊猫数据框所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。