猿问

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

首先是 2 个快速投球手,然后是两个旋转投球手,然后是一个快速投球手和全能投球手(击球手 + 投球手)。其中的顺序将由所采取的小门数量决定。


     Name             Role            run_scored  wickets_taken

19    P          Fast Bowler          62             13

18    Q          Spin Bowler          65             12

16    O          Fast Bowler          32              9

15    N  Batsman+Fast Bowler         114              8

14    K          Fast Bowler          24              7

13    T          Spin Bowler          17              6


缥缈止盈
浏览 153回答 1
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 slicesres = 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_taken0    P          FastBowler          62             131    O          FastBowler          32              92    Q          SpinBowler          65             123    T          SpinBowler          17              64    K          FastBowler          24              75    N  Batsman+FastBowler         114              8
随时随地看视频慕课网APP

相关分类

Python
我要回答