按熊猫数据框中的月和日给出的日期范围过滤多年的数据

龙卷风28

我有一个数据框 df,采用以下格式多年(每 6 小时)。

我需要过滤每年的日期,仅在 11 月 30 日至 3 月 30 日期间。

      Dates               Col1   Col2
11178 2018-10-27 12:00:00  -1   -3
11179 2018-10-27 18:00:00  -2    2
11180 2018-10-28 00:00:00   1    8
11181 2018-10-28 06:00:00  0.1 -0.2
11182 2018-10-28 12:00:00  0.2 -0.1
11183 2018-10-28 18:00:00  0.2  0.03
11184 2018-10-29 00:00:00  0.3  0.07
11185 2018-10-29 06:00:00  0.2 -0.2
11186 2018-10-29 12:00:00  0.05 -0.4
11187 2018-10-29 18:00:00  0.02 -0.5
11188 2018-10-30 00:00:00  0.02 -0.6
11189 2018-10-30 06:00:00 -0.05 -0.7

我可以通过以下方式删除某些日期或月份

df = df.loc[~(df['Dates'].dt.month.eq(4))]

以四月为例。我似乎无法找到一种有效的方法来为每年执行相同的日期范围,因此我最终可以通过每次将时间段后移一天来迭代地执行此操作。

日期列当前采用日期时间格式。

安塞夫

假设您只想选择11 月 30 日3 月 30 日的数据

那么你可以将你完全选择的月份和你只选择几天的月份分开:

1.您选择完全:十二月 一月和二月。

Dcember_Jan_Feb=~df['Dates'].dt.month.between(3,11)

你选11月30号,你也选3月1号到3月30号(3月有31天)

Nov_30=df['Dates'].dt.month.eq(11)&df['Dates'].dt.day.between(30,30)
March_1_to_30=df['Dates'].dt.month.eq(3)&df['Dates'].dt.day.between(1,30)

最后,应用您的过滤器:

df_filtered=df[Dcember_Jan_Feb|Nov_30|March_1_to_30]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章