我想比较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!!!
有谁知道我怎么能用熊猫修改我的命令,谢谢?
答案 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