熊猫df打印输出

时间:2020-07-18 15:35:28

标签: pandas dataframe

如何按“性别”列以F,M交替排序此数据框?

Name    Sex Age Height  Weight
0   Alfred  M   14  69.0    112.5
1   Alice   F   13  56.5    84.0
2   Barbara F   13  65.3    98.0
3   Carol   F   14  62.8    102.5
4   Henry   M   14  63.5    102.5
5   James   M   12  57.3    83.0
6   Jane    F   12  59.8    84.5
7   Janet   F   15  62.5    112.5
8   Jeffrey M   13  62.5    84.0
9   John    M   12  59.0    99.5
10  Joyce   F   11  51.3    50.5
11  Judy    F   14  64.3    90.0
12  Louise  F   12  56.3    77.0
13  Mary    F   15  66.5    112.0
14  Philip  M   16  72.0    150.0
15  Robert  M   12  64.8    128.0
16  Ronald  M   15  67.0    133.0
17  Thomas  M   11  57.5    85.0
18  William M   15  66.5    112.0

目标:交替打印性别列F和M。

1 个答案:

答案 0 :(得分:1)

IIUC,请尝试以下操作:

(df.assign(sortkey=df.groupby('Sex').cumcount())
   .sort_values(['sortkey','Sex'])
   .drop('sortkey', axis=1))

输出:

       Name Sex  Age  Height  Weight
1     Alice   F   13    56.5    84.0
0    Alfred   M   14    69.0   112.5
2   Barbara   F   13    65.3    98.0
4     Henry   M   14    63.5   102.5
3     Carol   F   14    62.8   102.5
5     James   M   12    57.3    83.0
6      Jane   F   12    59.8    84.5
8   Jeffrey   M   13    62.5    84.0
7     Janet   F   15    62.5   112.5
9      John   M   12    59.0    99.5
10    Joyce   F   11    51.3    50.5
14   Philip   M   16    72.0   150.0
11     Judy   F   14    64.3    90.0
15   Robert   M   12    64.8   128.0
12   Louise   F   12    56.3    77.0
16   Ronald   M   15    67.0   133.0
13     Mary   F   15    66.5   112.0
17   Thomas   M   11    57.5    85.0
18  William   M   15    66.5   112.0