检查一个多索引列中的值是否在不同多索引的任何列、同一行中

我有以下数据帧:

df=pd.DataFrame([[0,1,7,0,1,8,3,0],
[7, 3, 4, 0, 4, 9, 7, 0]], 
columns=pd.MultiIndex.from_乘积([[quot;first",“second"],
[“A”、“B”、“C”、“D”])
打印(df)
第一秒
A B C D A B C D
0     0  1  7  0      1  8  3  0
1     7  3  4  0      4  9  7  0

我想检查第一列中的值是否存在于第二列的任何列中。只能比较同一行

生成的数据帧应如下所示:

A B C D
0对-对-错-对
1正确-错误-正确-正确

这样做的最佳方式是什么?我已经尝试过使用df[“first”].isin(df[“second””),但它只比较A和A,B和B,…还尝试了与.any()组合使用,但我似乎无法使它工作

非常感谢你的帮助

先谢谢你

Numpy广播

np.any(df['first'].T.values[:,:,None]==df['second'].values,axis=-1.T

数组([[True,True,False,True],
[对,错,对,对]]

发表评论