比较2列并选择相同的名称

时间:2015-03-10 15:06:18

标签: python pandas dataframe

我想比较2个特定列并从我的数据帧中选择特定数据。例如,

>>>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!!!

有谁知道我怎么能用熊猫修改我的命令,谢谢?

1 个答案:

答案 0 :(得分:2)

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