如何将索引项与Pandas合并

时间:2018-11-27 03:22:26

标签: python python-3.x pandas

我有两个数据帧df_a和df_b。这两个数据帧的索引都包含三个项(id / sub_id / sort_id)。

我想将这两个数据框与索引项合并。

** df_a **
                      | c1 | c2 | c3 | 
id | sub_id | sort_id |    |    |    | 
 1 |      1 |       3 |   a|   b|   c| 
 2 |      1 |       1 |   a|   b|   c| 
 3 |      1 |       2 |   a|   b|   c| 

** df_b **
                      | c1 | c2 | c3 | 
id | sub_id | sort_id |    |    |    | 
 1 |      1 |       3 |   x|   y|   z| 
 2 |      1 |       1 |   x|   y|   z| 
 3 |      1 |       2 |   x|   y|   z| 

但是我遇到KeyError:'id'

df_merge = pd.merge(df_a, df_b, how='left', left_index=True, right_index=True, left_on=['id','sub_id','sort_id'], right_on=['id','sub_id','sort_id'])

如何合并这两个数据框?

1 个答案:

答案 0 :(得分:2)

由于您要在索引上进行合并,因此请指定left_index=True, right_index=True,这是正确的,但随后您将无法指定left_onright_on(该信息是多余的,并且不接受):

>>> pd.merge(df_a, df_b, left_index=True, right_index=True)
                  c1_x c2_x c3_x c1_y c2_y c3_y
id sub_id sort_id                              
1  1      3          a    b    c    x    y    z
2  1      1          a    b    c    x    y    z
3  1      2          a    b    c    x    y    z