2016-03-09 92 views
1

我有有很多個人的(有重複),其是以下類型的名稱的列的片材:「合併」的兩列在Python

Name 
Jackson Alan 
Wilson Pete 
Williamson Tom 
... 
Williamson Tom 
... 
Peterson Alan 

在另一片我有兩個列:一個與所有這些人(只有一次每次這個時候),另一種用評分的相關聯的這些球員:

 Name   Score 
Williamson Tom  85 
    ... 
Jackson Alan   90 
Wilson Pete   80 
Peterson Alan  70 

我想每個人的得分在第一板關聯到他們的名字所以結果如下所示:

Name    Score 
Jackson Alan  90 
Wilson Pete   80 
Williamson Tom  85 
... 
Williamson Tom  85 
... 
Peterson Alan  70 

你能推薦一個快速的方法來用Python中的熊貓做例子(第一個表有大約10萬個名字,所以我需要它足夠快)。提前致謝。

回答

1

如果我正確理解你的問題,你可以使用合併

import pandas as pd 
names = pd.DataFrame(['A', 'B', 'A', 'C'], columns=['names']) 
names_scores = pd.DataFrame([('A', 1), ('B', 2), ('C', 3)], columns=['names', 'scores']) 
names.merge(names_scores, left_on='names', right_on='names', how='outer') 

(你可以更改爲「外部」,「內部」等各種加盟邏輯)

這將給你

names scores 
0  A  1 
1  A  1 
2  B  2 
3  C  3 
+0

我覺得應該適合我,10x – rado