熊猫加入两个有条件的数据框

时间:2020-01-30 09:48:56

标签: python pandas dataframe join

我想将两个数据框连接在一起,两个数据框都有日期列(df1[date1]df2[date2])。我希望加入的数据框满足此条件df2[date2] > df1[date1]。第二个数据帧没有任何重复项,但第一个数据帧有重复项,因此无法按预期工作:

我可以肯定地知道,对于df2中的每个日期,df1中都有一个满足此条件的日期。但是我不知道如何正确地加入他们。我尝试这样做:

joined = df1.join(df2, how='inner')
joined = joined.query('date2 > date1')

但是由于df1的条目具有重复的ID,所以它们在连接后对齐的方式导致一堆不满足条件的行,所以我剩下的数据库较小。 我该怎么做?

1 个答案:

答案 0 :(得分:1)

根据您的天赋,我建议采取以下解决方案:

1)concatenate(不是join)两个数据帧。

df12 =  pd.concat([df1, df2], axis=1)

我认为索引匹配。如果不是,请在ID上重新索引,或者在ID上join重新索引。

2)过滤符合条件的行

df12 = df12[df12['date2'] > df12['date1]]