Python 3.x 如何合并具有重复行的两个数据帧?
我有两个数据帧Python 3.x 如何合并具有重复行的两个数据帧?,python-3.x,pandas,merge,Python 3.x,Pandas,Merge,我有两个数据帧df1和df2。df1有重复的文本wrt列name,但列hobby发生了变化。df2列的name中也有重复的文本。我想合并两个数据帧并保留所有内容 df1: name hobby mike cricket mike football jack chess jack football jack vollyball pieter sleeping pieter cyclying 我的df2是 df2: name mike pieter jack
df1
和df2
。df1
有重复的文本wrt列name
,但列hobby
发生了变化。df2
列的name
中也有重复的文本。我想合并两个数据帧并保留所有内容
df1:
name hobby
mike cricket
mike football
jack chess
jack football
jack vollyball
pieter sleeping
pieter cyclying
我的df2
是
df2:
name
mike
pieter
jack
mike
pieter
现在我必须在name
列中将df2
与df1
合并
因此,我的结果df3
应该如下所示:
df3:
name hobby
mike cricket
mike football
pieter sleeping
pieter cyclying
jack chess
jack football
jack vollyball
mike cricket
mike football
pieter sleeping
pieter cyclying
IIUC,您要为
df2
分配一个顺序,在name
上合并,然后按所述顺序排序:
(df2.assign(rank=np.arange(len(df2)))
.merge(df1, on='name')
.sort_values('rank')
.drop('rank', axis=1)
)
输出:
name hobby
0 mike cricket
1 mike football
4 pieter sleeping
5 pieter cyclying
8 jack chess
9 jack football
10 jack vollyball
2 mike cricket
3 mike football
6 pieter sleeping
7 pieter cyclying