比较两个数据帧大熊猫的两列

时间:2017-06-25 12:41:49

标签: pandas select dataframe merge lookup

我有2个数据框,如:

df_out:
a   b     c   d
1   1     2    1
2   1     2    3
3   1     3    5

df_fin:
a   e     f   g
1   0     2    1
2   5     2    3
3   1     3    5
5   2     4     6
7   3     2     5

我想得到结果:

a   b      c   d  a   e   f   g 
1   1     2    1  1   0   2   1
2   1     2    3  2   5   2   3
3   1     3    5  3   1   3   5 

在另一个词中,我有两个不同的数据帧,在一列(a)中是常见的,我想两个比较这两列(df_fin.a和df_out.a)并从df_fin中选择具有相同值的行在a列中创建新的数据框,从df_fin中选择行并从df_out添加列?

1 个答案:

答案 0 :(得分:2)

我认为你需要merge左连接:

df = pd.merge(df_out, df_fin, on='a', how='left')
print (df)
   a  b  c  d  e  f  g
0  1  1  2  1  0  2  1
1  2  1  2  3  5  2  3
2  3  1  3  5  1  3  5

编辑:

df1 = df_fin[df_fin['a'].isin(df_out['a'])]
df2 = df_out.join(df1.set_index('a'), on='a')
print (df2)
   a  b  c  d  e  f  g
0  1  1  2  1  0  2  1
1  2  1  2  3  5  2  3
2  3  1  3  5  1  3  5