python - 在python中按组枚举行

标签 python pandas

我有一个包含游戏回合、名称和分数的数据集:

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.firstGroupby.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/

相关文章:

python - 在 Python 中选择禁用的表单

python - 更新数据框 ID w.r.t 缺少日期列值

pandas - Jupyter:pandas pretty describe 函数包装在 if 语句中是不可能的?

python - Pandas 数据帧 : merge files by common columns

python - 如何通过分隔符拆分 Pandas 列并选择首选元素作为替换

c# - 我应该使用哪种技术来开发高性能 Web 应用程序

python - pyparsing,转发和递归

python - https ://s3. zoneame.amazonaws.com/的 SSL 验证失败 [SSL : CERTIFICATE_ VERIFY_FAILED] certificate verify failed (_ssl. c:749)

python - 如何选择 NumPy 数组中除索引序列之外的所有元素

python - 将 lambda 与命名函数应用于 pandas DataFrame 之间的性能差异