我有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列)的共同点,并在第一个数据帧的coulmn D上赋值1。
我可以使用for循环,但对于大量条目来说,它会非常慢。
任何线索或建议将不胜感激。
我就是这样解决的:
DF1.merge(right=DF2,left_on=[DF1.A,DF1.B],right_on=[DF2.K,DF2.L], indicator=True, how='left')
给出:
A B C D K L _merge 0 AA BA KK 0 AA BA both 1 AD BD LL 0 NaN NaN left_only 2 AF BF MM 0 AF BF both
如上所述,indicator完成了这项工作。
彼得
如果重命名
df2
的列,然后可以按行进行比较,这将更容易:相关问题 更多 >
编程相关推荐