熊猫
我有两个数据框,想要做一个嵌套循环。
我要迭代df1的每一行,然后选择col1(id)和col2。
然后,它将获取ID并遍历df2,并检查行是否具有相同的ID,然后将df1中的列与df2中的列进行比较
如果df1中的col2与df2中的col3匹配,它将返回True 并将其附加到df1的行中。
df1
col1 col2 col3 col3
01 A S True
02 D F True
03 Z B False
df2
col1 col2 col3
01 A A
02 B A
02 D F
02 C D
02 D V
03 X W
03 E X
答案 0 :(得分:1)
IIUC使用tuple
和isin
df1[['col1','col2']].apply(tuple,1).isin(df2[['col1','col3']].apply(tuple,1))
Out[1051]:
0 True
1 True
2 False
dtype: bool
答案 1 :(得分:1)
设置
a = df1[['col1', 'col2']].values
b = df2[['col1', 'col2']].values
使用带有any
和all
的广播:
(a == b[:, None]).any(0).all(1)
array([ True, True, False])