合并pandas列(多对一)

时间:2017-07-24 10:45:01

标签: python pandas merge repeat

我有两个数据帧:

df1

ID
1
2
3
4
5
6
7
8
9
10

DF2:

Name  Count
raj       2
dinesh    3
sachin    3
glen      2

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

DF3:

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

我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您似乎需要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