Как объединить, используя элементы индекса с Pandas - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть два кадра данных 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 голосов
/ 27 ноября 2018

Поскольку вы пытаетесь объединить индекс, вы указываете left_index=True, right_index=True, что является правильным, но тогда вы не можете указать left_on или right_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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...