在两个数据框之间匹配列值,如果为true,则获取列名称

时间:2020-07-27 01:38:09

标签: python dataframe data-science

我有两个数据帧;

df1= {'col1': [9,2,2], 'col2': [5,1,0], 'col3': [9,3,2], 'col4': [8,3,2],  'col5': [6,0,0]}
df1 = pd.DataFrame(data=df1)

   col1 col2 col3 col4 col5
0   9    5    9     8   6
1   2    1    3     3   0
2   2    0    2     2   0


df2 = [[9, 8], [3, 3], [2, 2]] 
df2 = pd.DataFrame(data=df2)
    0   1
0   9   8
1   3   3
2   2   2

我想匹配列值(在这种情况下为9,3,2和8,3,2),并输出列名称(在这种情况下为'col3'和'col4'

我尝试过:

df2[0].value_counts() == df1['col3'].value_counts()

df1.values==df2.values,但不是我追求的目标。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用pd.DataFrame.eqpd.DataFrame.allpd.DataFrame.any

temp=df1.apply(lambda x: df2.eq(x,axis=0).all()).any()
temp.index[temp]

输出:

['col3', 'col4']