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

我有 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)的行数注意:我的日期字段是日期类型

我尝试了几种方法

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

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

我将不胜感激任何可以引导我回答这个问题的提示。谢谢


呼啦一阵风
浏览 117回答 1
1回答

潇潇雨雨

尝试merge使用query:df1.merge(df2,&nbsp;on&nbsp;=&nbsp;'Code').query('DateFin&nbsp;>=&nbsp;HunStart&nbsp;and&nbsp;DateFin&nbsp;<=&nbsp;HunEnd')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python