Pandas Merge 2数据帧(如果其中一个值相同)



我有两个数据帧:

df1:

id            color
0    005           green
1    005           blue

df2:

user_id         name
0    005            eric

我正在尝试使用pd.dataframe.merge来合并这两个数据帧

df2 = df2.merge(df1, left_on='user_id', right_on='id')[['id', 'name', 'color']]

我得到了以下结果:

df2:

id       name     color
0    005       eric     green
1    005       eric     blue

有没有办法将这两列合并为1?例如:

df2:

id       name     color
0    005       eric     green,blue
>>> df2.merge(df1.groupby("id")["color"].agg(','.join),
left_on="user_id", right_on="id")
user_id  name       color
0     005  eric  green,blue

最新更新