比较 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
我想比较 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