如何匹配和选择不同长度的数据帧的值?

时间:2015-06-12 11:11:43

标签: python pandas dataframe

我有2个不同长度的数据帧。每个都有3个id列,我想只在所有id列相同时才将值从第二个数据帧传输到第一个数据帧。例如,值'bb'将添加到第3行df1中的新列。我该怎么办?

df1 = pd.DataFrame({'id1' : [1, 2, 'aa', 4, 5], 'id2': ['a', 'a', 'aa', 'd','e'], 'id3': ['p', 'r', 'aa', 'i', 't']})
df2 = pd.DataFrame({'id1': [ 6, 7, 6, 5, 4, 1, 'aa' ], 'id2':['f','d','c','f','b','z','aa'], 'id3':['a', 'f', 'q',  'b', 't', 't','aa'], \
                'value' : [5, 4,7,6, 8, 5 , 'bb']})
    id1 id2 id3
0   1   a   p
1   2   a   r
2  aa  aa  aa
3   4   d   i
4   5   e   t

[5 rows x 3 columns]
  id1 id2 id3 value
0   6   f   a     5
1   7   d   f     4 
2   6   c   q     7
3   5   f   b     6
4   4   b   t     8
5   1   z   t     5
6  aa  aa  aa    bb

1 个答案:

答案 0 :(得分:0)

您只需执行左侧样式merge

In [116]:
df1.merge(df2, how='left')

Out[116]:
  id1 id2 id3 value
0   1   a   p   NaN
1   2   a   r   NaN
2  aa  aa  aa    bb
3   4   d   i   NaN
4   5   e   t   NaN