панд
У меня есть два кадра данных и вы хотите сделать вложенный цикл.
Я хочу повторить каждую строку из df1 и выбрать col1 (id) и col2.
Затем он будет принимать идентификатор и перебирать через df2 и проверять, имеет ли строка один и тот же идентификатор, а затем сравнить столбец из df1 со столбцом в df2
если col2 в df1 соответствует col3 в df2, он вернет 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
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
Настроить
a = df1[['col1', 'col2']].values
b = df2[['col1', 'col2']].values
Используя вещание с any
и all
:
(a == b[:, None]).any(0).all(1)
array([ True, True, False])