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

2024-04-24 12:04:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,标准的数据帧有一些相同的值(=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    |
+----+------------+------------+------------+------------+------------+

正如您所注意到的,我想将dataframe与'id'合并,但是标准dataframe在'id'上有一些相同的值。我的目标只是粘贴“id”上的值

你能给我举个这个问题的好例子吗


Tags: 数据idnumberdataframe标准foodtypegroup
1条回答
网友
1楼 · 发布于 2024-04-24 12:04:07

我想你需要^{}left一起加入:

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

或者如果可能,在DataFramesDataFrames中使用更常见的列名:

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

相关问题 更多 >