比较 2 列和 select 相同的名称

Compare 2 columns and select the same name

我想比较 2 个特定的列和 select 来自我的数据框的特定数据。例如,

>>>df   
c1    c2  c3    c4     c5  c6
David 23  0.5   Jason  34  0.9
Lisa  20  0.2   Gill   32  0.6
Mary  12  0.7   Lisa   22  0.12       # my dataframe
Damen 58  0.17  David  48  0.94 

我希望我能从c1和c4列中得到同一个人,即同时存在于c1和c4中的人。那是丽莎和大卫。然后我可以在我的结果中看到类似下面的内容。

>>>result
c1    c2  c3   c4     c5  c6
David 23  0.5  David  48  0.94
Lisa  20  0.2  Lisa   22  0.12       # I need Lisa and David only.

我试过类似的方法:

df['c1'].map(lambda x: x == df['c4'])

df[[x == df['c4'] for x in df['c1']]]

但我只得到基于 David 和 Lisa 的 c1 的相同行:

>>>result
c1    c2  c3    c4     c5  c6
David 23  0.5   Jason  34  0.9     
Lisa  20  0.2   Gill   32  0.6     # I do not need Gill and Jason!!!

有谁知道如何使用 pandas 修改我的命令,谢谢?

df[['c1','c2','c3']].merge(df[['c4','c5','c6']], left_on='c1', right_on='c4')

根据您的输入产出

      c1  c2   c3     c4  c5    c6
0  David  23  0.5  David  48  0.94
1   Lisa  20  0.2   Lisa  22  0.12