合并 pandas 列(多对一)

Merging pandas columns (many-to-one)

我有两个数据框:

df1

ID
1
2
3
4
5
6
7
8
9
10

df2:

Name  Count
raj       2
dinesh    3
sachin    3
glen      2

现在我想创建第三个数据框,父数据框为 df1,第二列插入为 "Owner",2 行分配给 raj,3 行分配给 dinesh,3 行分配给 sachin,2 行分配给 glen。第三个 datframe 将如下所示:

df3:

ID     Owner
1      raj
2      raj
3      dinesh
4      dinesh
5      dinesh
6      sachin
7      sachin
8      sachin
9      glen
10     glen

非常感谢你的帮助。

您似乎需要 numpy.repeat,但所有 Count 值的总和必须与 df1 的长度相同:

df1['Owner'] = np.repeat(df2['Name'].values, df2['Count'].values)
print (df1)
   ID   Owner
0   1     raj
1   2     raj
2   3  dinesh
3   4  dinesh
4   5  dinesh
5   6  sachin
6   7  sachin
7   8  sachin
8   9    glen
9  10    glen