我有两个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
答案 0 :(得分:6)
我认为需要merge
带指标并仅过滤来自left
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