我有两个数据帧;
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
,但不是我追求的目标。
答案 0 :(得分:1)
您可以尝试使用pd.DataFrame.eq
,pd.DataFrame.all
和pd.DataFrame.any
:
temp=df1.apply(lambda x: df2.eq(x,axis=0).all()).any()
temp.index[temp]
输出:
['col3', 'col4']