繁体   English   中英

Pandas 用条件连接两个数据框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM