我有 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
提交
取消