我有两个具有不同格式的相似数据的数据框
df1:
Nodo X Y Z
CTB3901 CTBX3901 CTBY3901 CTBZ3901
MTR5331 MTRX5331 MTRY5331 MTRZ5331
ADC3451 ADCX3451 ADCY3451 ADCZ3451
df2:
Site_x Site_y
CTBX3901E CTBX3901
CTB3901 CTB3901E
CTBZ3901E CTBZ3901
CTBY3901E CTB3901
MADX6379E MADX6379
我想检查任何df2['Site_x', 'Site_y']
列中是否有来自的条目df1['Nodo','X','Y','Z']
。数据不必在两个帧中都位于同一行中。
检查后的最终输出如下
Site_x Site_y Checked
CTBX3901E CTBX3901 True
CTB3901 CTB3901E True
CTBZ3901E CTBZ3901 True
CTBY3901E CTB3901 True
MADX6379E MADX6379 False
请原谅我笨拙的数据集。为了使这一部分正确无奈,我不得不粘贴与我相同的数据。
我已经尝试过使用以下语法的isin方法,但是输出在整个“ Checked”列中都为False。
df2['Checked'] = df2[['Site_x','Site_y']].isin(df1[['Nodo','X','Y','Z']]).any(axis=1)
您非常接近:
df2['checked'] = df2.apply(lambda x: x.isin(df1.stack())).any(axis=1)
谢谢@Quang。这对我有帮助。:)