我有两个具有不同格式的相似数据的数据框
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 方法,但输出在整个“已检查”列中为 False。
df2['Checked'] = df2[['Site_x','Site_y']].isin(df1[['Nodo','X','Y','Z']]).any(axis=1)
请您参考如下方法:
使用 np.ravel()使用 .isin():
df2['Checked']=df2.isin(df1.values.ravel()).any(axis=1)
print(df2)
Site_x Site_y Checked
0 CTBX3901E CTBX3901 True
1 CTB3901 CTB3901E True
2 CTBZ3901E CTBZ3901 True
3 CTBY3901E CTB3901 True
4 MADX6379E MADX6379 False
