gpt4 book ai didi

python - 检查一个数据框的任何值(多列)是否存在于另一个数据框的任何值(多列)中

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:38 26 4
gpt4 key购买 nike

我有两个具有不同格式的相似数据的数据框

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

关于python - 检查一个数据框的任何值(多列)是否存在于另一个数据框的任何值(多列)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56873664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com