我有一张带有一个列的列表,其中包含许多个人的名字(有重复),其类型如下:
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中的pandas快速方法(第一张表有大约100k的名字,所以我需要它足够快)。提前谢谢。
答案 0 :(得分: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