我有 2 个数据框。一,df1有 20,365 行。另一个 ( df2) 25.df1看起来像这样:Code DateFin ClimReg Prec TempA1 14-05-18 15A 0 15.2A1 17-07-18 16A 0.01 28.2B2 02-02-19 17B 2.5 -2.3B2 30-11-18 18B 3.5 3.9C3 14-07-18 13C 0.02 32.0C3 15-07-18 13Z 6.3 3.9D4 01-01-19 12I 0 -2.0E5 01-03-18 12L 2.1 5.6我只需要在 df1 中保留以下所示范围内的行df2:Code HuntSeas HunStart HunEndA1 01-07 to 31-12 01-07-18 31-12-18B2 15-06 to 31-01 15-06-18 31-01-19C3 15-07 to 15-02 15-07-18 15-02-19D4 01-07 to 28-02 01-07-18 28-02-19E5 01-06 to 01-03 01-06-18 01-03-19..这就是我追求的,输出或df3看起来像这样:KanJ DateFin ClimReg Prec Temp HuntSeasA1 17-07-18 16A 0.01 28.2 01-07 to 31-12B2 30-11-18 18B 3.5 3.9 15-06 to 31-01C3 15-07-18 13Z 6.3 3.9 15-07 to 15-02D4 01-01-19 12I 0 -2.0 01-07 to 28-02输出(df3)的行数应等于或少于输入(df1)的行数注意:我的日期字段是日期类型我尝试了几种方法这是另一个问题的答案:Select Pandas dataframe rows between two dates 然而,结果不是我所期望的。它为我提供了比输入数据框中更多的行 ( df1)由于我有很多年的工作时间(不仅是 2018 年),所以我最初的尝试是直接使用,从 Date 字段中df1选择考虑MONTH和的行。但是,我没有找到办法。是否可以在日期类型字段的月份和日期中遍历年份?YEAR['DateFin']我将不胜感激任何可以引导我回答这个问题的提示。谢谢
1 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
尝试merge
使用query
:
df1.merge(df2, on = 'Code').query('DateFin >= HunStart and DateFin <= HunEnd')
添加回答
举报
0/150
提交
取消