python pandas- 从日期类型中选择月份和日期,然后在新字段中插入信息

python pandas- selecting month and day from a datetype and then inserting info on a new field

我有2个数据框。一,df1,有 20,365 行。另一个(df2) 25.

df1 看起来像这样:

Code    DateFin      ClimReg    Prec    Temp
A1      14-05-18       15A         0    15.2
A1      17-07-18       16A      0.01    28.2
B2      02-02-19       17B       2.5    -2.3
B2      30-11-18       18B       3.5    3.9
C3      14-07-18       13C       0.02   32.0
C3      15-07-18       13Z       6.3    3.9
D4      01-01-19       12I        0    -2.0
E5      01-03-18       12L       2.1    5.6

我只需要在 df1 中保留 df2:

中所示范围内的行
Code    HuntSeas      HunStart   HunEnd
A1  01-07 to 31-12    01-07-18  31-12-18
B2  15-06 to 31-01    15-06-18  31-01-19
C3  15-07 to 15-02    15-07-18  15-02-19
D4  01-07 to 28-02    01-07-18  28-02-19
E5  01-06 to 01-03    01-06-18  01-03-19..

这就是我追求的,输出或 df3 看起来像这样:

KanJ  DateFin   ClimReg   Prec  Temp    HuntSeas
A1   17-07-18    16A      0.01  28.2   01-07 to 31-12
B2   30-11-18    18B      3.5   3.9    15-06 to 31-01
C3   15-07-18    13Z      6.3   3.9    15-07 to 15-02
D4   01-01-19    12I       0    -2.0   01-07 to 28-02

输出 (df3) 的行数应等于或少于输入 (df1) 注意:我的日期字段类型为 date

我尝试了几种方法

  1. 这是另一个问题的答案: 然而,结果并不是我所期望的。它为我提供了比输入数据框中更多的行 (df1)

  2. 由于我有很多年的工作时间(不仅是 2018 年),我最初的尝试是直接使用 df1,选择行时考虑 MONTHYEAR 来自日期字段 ['DateFin']。但是,我没有找到办法。是否可以在日期类型字段中使用月份和日期来遍历年份?

如果有任何提示可以引导我回答此问题,我将不胜感激。 谢谢

尝试将 mergequery 一起使用:

df1.merge(df2, on = 'Code').query('DateFin >= HunStart and DateFin <= HunEnd')