Python 我有两个数据帧df1和df2,我需要使用df2中的键过滤掉df1,使用df2中的开始和结束日期,我需要得到类似df3的结果

Python 我有两个数据帧df1和df2,我需要使用df2中的键过滤掉df1,使用df2中的开始和结束日期,我需要得到类似df3的结果,python,pandas,Python,Pandas,我想使用来自df2的键和额外的开始和结束日期过滤器过滤数据,然后需要使用这个标准过滤df1以获得df3(示例输出) 我需要一个输出如下df3-使用某种iter行或lambda,对不起,我找不到任何地方的答案。 您需要首先合并df1和df2,然后过滤date不在strdate和enddate之间的行 df3 = df1.merge(df2) df3 = (df3[df3['date'].between(df3.strdate, df3.enddate)] .drop(column

我想使用来自df2的键和额外的开始和结束日期过滤器过滤数据,然后需要使用这个标准过滤df1以获得df3(示例输出)

我需要一个输出如下df3-使用某种iter行或lambda,对不起,我找不到任何地方的答案。
您需要首先合并
df1
df2
,然后过滤
date
不在
strdate
enddate
之间的行

df3 = df1.merge(df2)
df3 = (df3[df3['date'].between(df3.strdate, df3.enddate)]
         .drop(columns = ['strdate', 'enddate']))
输出:

>>> df3
       KEY        date  sales
0  1747604  2019-02-11    342
1  1747604  2019-06-14    234
3  2113901  2019-03-24     67
4  2113901  2019-04-28    564
  • 合并两个数据帧。这将删除
    键不在
    df2
    中的所有行
  • df3=df1.merge(df2,左键,右键)

  • 筛选出
    日期
    不在
    标准日期
    结束日期
    之间的所有行

  • df3=df3[(df3.date>=df3.strdate)&(df3.date)太棒了!你真是太棒了,它帮了你的忙。
    
    df3 = df1.merge(df2)
    df3 = (df3[df3['date'].between(df3.strdate, df3.enddate)]
             .drop(columns = ['strdate', 'enddate']))
    
    >>> df3
           KEY        date  sales
    0  1747604  2019-02-11    342
    1  1747604  2019-06-14    234
    3  2113901  2019-03-24     67
    4  2113901  2019-04-28    564