[英]Pandas join two dataframes with condition
我想将两个数据框连接在一起,两个数据框都有日期列( df1[date1]
, df2[date2]
)。 我希望加入的数据框满足这个条件df2[date2] > df1[date1]
。 第二个数据帧没有任何重复,但第一个有,所以这不能按预期工作:
我确信对于 df2 中的每个日期,df1 中都有一个满足此条件的日期。 但我无法弄清楚如何正确加入它们。 我试过这样做:
joined = df1.join(df2, how='inner')
joined = joined.query('date2 > date1')
但是由于 df1 具有重复 id-s 的条目,它们在连接后对齐的方式会导致一堆不满足条件的行,所以我只剩下较小的数据库。 我怎样才能做到这一点?
根据您的澄清,我建议以下解决方案:
1) concatenate
(不join
)2个数据帧。
df12 = pd.concat([df1, df2], axis=1)
我假设索引匹配。 如果不是 - 在 id 上重新索引或在 id 上join
。
2)过滤符合条件的行
df12 = df12[df12['date2'] > df12['date1]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.