获取两个列值相等的Pandas列

iyr7buue  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(153)

我想通过不同 Dataframe 中的两列(如果列中的值相同)来为DataFrame创建子集。下面是df1和df2的示例:

df1
    A         
0   apple
1   pear
2   orange
3   apple

df2
    B
0   apple
1   orange
2   orange
3   pear

我希望输出是基于df2列的子集化df1:

A   
0   apple
2   orange

我尝试了df1 = df1[df1.A == df2.B],但得到以下错误:

ValueError: Can only compare identically-labeled Series objects

我不想在其中重命名列。
最好的方法是什么?谢谢

wvt8vs2t

wvt8vs2t1#

如果需要比较两列的索引值,请创建Multiindex并使用Index.isin

df = df1[df1.set_index('A', append=True).index.isin(df2.set_index('B', append=True).index)]
print (df)
        A
0   apple
2  orange

相关问题