2017-07-24 285 views
1

我有兩個dataframes:合併大熊貓列(多到一個)

DF1

ID 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 

DF2:

Name Count 
raj  2 
dinesh 3 
sachin 3 
glen  2 

現在我想創建一個父數據幀第三數據幀作爲df1第二列插入爲「所有者」,其中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 

我將十分感謝您的幫助。

回答

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 
+0

是,在第二個數據幀的計數值總是作爲第一個數據幀的長度相同。謝謝,我現在正在測試您的建議並在一段時間內回覆給您。 – Ankit

+0

它給了我一個錯誤:根據規則'安全'不能從dtype('int64')投射數組數據到dtype('int32') – Ankit

+0

如果只使用'print(np.repeat(df2 ['Name']] .values,df2 ['Count']。values))'它有效? – jezrael