我有2个数据框,如下所示:
DF1=
A B C D
0 AA BA KK 0
1 AD BD LL 0
2 AF BF MM 0
DF2=
K L
0 AA BA
1 AD BF
2 AF BF
最后,我想得到的是:
DF1=
A B C D
0 AA BA KK 1
1 AD BD LL 0
2 AF BF MM 1
因此,我想比较两个数据帧,我想查看第一数据帧的哪些行(针对列A和B)与第二数据帧(列K和L)相同,并在第一数据帧的列D上分配1。
我可以使用for循环,但是输入大量条目会很慢。
任何线索或建议,将不胜感激。
最佳答案
如果您重命名了df2
的列,然后可以逐行进行比较,这将更加容易:
In [35]:
df2.columns = ['A', 'B']
df2
Out[35]:
A B
0 AA BA
1 AD BF
2 AF BF
In [38]:
df1['D'] = (df1[['A', 'B']] == df2).all(axis=1).astype(int)
df1
Out[38]:
A B C D
0 AA BA KK 1
1 AD BD LL 0
2 AF BF MM 1
关于python - 比较两个Python Pandas数据框的2列并获取公共(public)行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30291032/