程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在不指定年份的情况下按日期范围过滤熊猫数据框大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在不指定年份的情况下按日期范围过滤熊猫数据框?

开发过程中遇到如何在不指定年份的情况下按日期范围过滤熊猫数据框的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在不指定年份的情况下按日期范围过滤熊猫数据框的解决方法建议,希望对你解决如何在不指定年份的情况下按日期范围过滤熊猫数据框有所启发或帮助;

鉴于我有一个带有日期时间索引的熊猫数据框,如下所示:

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,请注明来意。