首页 > 解决方案 > 在熊猫数据框的两列中找到相等的值

问题描述

这是我的数据框:

df = pd.DataFrame({'ma':['a', 'b', 'c', 'd'], 'freq1':[1,2,3,4], 'phd':['x', 'y', 'a','b'], 'freq2':[6,7,8,9]})

我想选择其中的一部分dfma具有phd共同的价值观(即ab)这是我想要的结果:

  freq1  freq2 ma phd
0      1      8  a   a
1      2      9  b   b

标签: pythonpandas

解决方案


所以我认为你可以进行自我合并:

m=df.merge(df,left_on='ma',right_on='phd')
m.loc[:,['ma_x','freq1_x','freq2_y','phd_y']]

  ma_x  freq1_x  freq2_y phd_y
0    a        1        8     a
1    b        2        9     b

或者,分成df两部分,然后在“ma”和“phd”上合并:

df1 = df[['ma', 'freq1']]
df2 = df[['phd', 'freq2']]
df1.merge(df2, left_on='ma', right_on='phd')

  ma  freq1 phd  freq2
0  a      1   a      8
1  b      2   b      9

推荐阅读