加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-3.x – pandas left join其中多个列的right为null

发布时间:2020-12-20 11:03:21 所属栏目:Python 来源:网络整理
导读:我有两个pandas df x和y,两个都有相同的3列A B C(不可为空).我需要创建一个新的df z,通过“从x中减去与y行完全相同的行”得到,即a x left join y on x.A=y.A and x.B=y.B and x.C=y.Cwhere y.A is null 我该怎么办?陷入了索引,连接,合并,加入…… 例: data
我有两个pandas df x和y,两个都有相同的3列A B C(不可为空).我需要创建一个新的df z,通过“从x中减去与y行完全相同的行”得到,即a

x left join y on x.A=y.A and x.B=y.B and x.C=y.C
where y.A is null

我该怎么办?陷入了索引,连接,合并,加入……

例:

dataframe x
A    B    C
q1   q2   q3
q4   q2   q3
q7   q2   q9

dataframe y
A    B    C
q4   q2   q3

dataframe z
A    B    C
q1   q2   q3
q7   q2   q9

解决方法

我认为需要带有指标的 merge并仅过滤来自左侧DataFrame的行:

df = x.merge(y,indicator='i',how='outer').query('i == "left_only"').drop('i',1)
print (df)
    A   B    C
0  q1  q2   q3
2  q7  q2  q93

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读