为了账号安全,请及时绑定邮箱和手机立即绑定

按基于系列的规则对 Pandas 数据框中的数据进行排序

按基于系列的规则对 Pandas 数据框中的数据进行排序

缥缈止盈 2021-06-04 21:26:11
首先是 2 个快速投球手,然后是两个旋转投球手,然后是一个快速投球手和全能投球手(击球手 + 投球手)。其中的顺序将由所采取的小门数量决定。     Name             Role            run_scored  wickets_taken19    P          Fast Bowler          62             1318    Q          Spin Bowler          65             1216    O          Fast Bowler          32              915    N  Batsman+Fast Bowler         114              814    K          Fast Bowler          24              713    T          Spin Bowler          17              6
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

您可以按 wickets 降序排序,创建一个将 Role 映射到数据帧切片的字典,然后根据您的规则连接结果。


# sort by 'wickets_taken'

df = df.sort_values('wickets_taken', ascending=False)


# group by 'Role'

g = dict(tuple(df.groupby('Role')))


# concatenate custom slices

res = pd.concat([g['FastBowler'].iloc[:2],

                 g['SpinBowler'],

                 g['FastBowler'].iloc[2:],

                 g['Batsman+FastBowler']],

                ignore_index=True)

结果


print(res)


  Name                Role  run_scored  wickets_taken

0    P          FastBowler          62             13

1    O          FastBowler          32              9

2    Q          SpinBowler          65             12

3    T          SpinBowler          17              6

4    K          FastBowler          24              7

5    N  Batsman+FastBowler         114              8


查看完整回答
反对 回复 2021-06-09
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号