我有一个包含游戏回合、名称和分数的数据集:
import pandas as pd
data = [[1,'tom', 10], [1,'nick', 15], [2,'juli', 14], [2,'peter', 20], [3,'juli', 3], [3,'peter', 13]]
have = pd.DataFrame(data, columns = ['Round', 'Name', 'Score'])
have.sort_values(by=['Round','Score'])
如何获取数据集 Round、WinnerName、LooserName、WinnerScore 和 LooserScore?
我开始尝试枚举,但一直在搞乱语法
最佳答案
在我看来这绝对是最好的方法
由于每场比赛只有两支球队参赛,您可以使用 pandas.DataFrame.sort_values 进行排序并使用
Groupby.Series.first和 Groupby.Series.last :
result=( have.sort_values('Score',ascending=False)
.groupby('Round')
.agg({'Name':{'Winner':'first','Looser':'last'},
'Score':{'WinnerScore':'first','LooserScore':'last'}}) )
print(result)
Name Score
Winner Looser WinnerScore LooserScore
Round
1 nick tom 15 10
2 peter juli 20 14
3 peter juli 13 3
关于python - 在python中按组枚举行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015527/