合并两个在一侧具有重复“on”值的数据帧

时间:2017-11-14 10:57:55

标签: python pandas

我有两个数据帧,标准数据帧有一些相同的值(= id),我必须将其用作合并点。

+----+------------+------------+------------+
| id | res_number |    type    | payment    | 
+----+------------+------------+------------+
|  a |     1      |    toys    | 20000      |
|  a |     2      |  clothing  | 30000      |
|  a |     3      |    food    | 40000      |
|  b |     4      |    food    | 40000      |
|  c |     5      |   laptop   | 30000      |
+----+------------+------------+------------+

\我想将此数据框与下面的数据框合并。

+----+------------+------------+
| id |   group    | unique_num | 
+----+------------+------------+
|  a |     1      |    1231    | 
|  b |     2      |    1234    | 
|  c |     1      |    1241    | 
+----+------------+------------+

我希望像这样建立数据框架。

+----+------------+------------+------------+------------+------------+
| id | res_number |    type    | payment    |   group    | unique_num |
+----+------------+------------+------------+------------+------------+
|  a |     1      |    toys    | 20000      |      1     |    1231    |
|  a |     2      |  clothing  | 30000      |      1     |    1231    |
|  a |     3      |    food    | 40000      |      1     |    1231    |
|  b |     4      |    food    | 40000      |      2     |    1234    |
|  c |     5      |   laptop   | 30000      |      3     |    1241    |
+----+------------+------------+------------+------------+------------+

您可以注意到我想将数据框与'id'合并,但标准数据框在'id'上有一些相同的值。我的目标只是粘贴'id'上的任何值。

你能举出这个问题的好例子吗?

1 个答案:

答案 0 :(得分:2)

我认为您需要merge left加入:

df = pd.merge(df1, df2, how='left')

如果可能,DataFrames

中的更常见列名称
df = pd.merge(df1, df2, how='left', on='id')
print (df)
  id  payment  res_number      type  group  unique_num
0  a    20000           1      toys      1        1231
1  a    30000           2  clothing      1        1231
2  a    40000           3      food      1        1231
3  b    40000           4      food      2        1234
4  c    30000           5    laptop      1        1241