【问题标题】:Sort a column within groups in Pandas在 Pandas 中对组内的列进行排序
【发布时间】:2017-08-27 21:40:25
【问题描述】:

我是熊猫新手。我正在尝试对每个组中的一列进行排序。到目前为止,我能够将第一列和第二列值组合在一起并计算第三列中的平均值。但我仍在努力对第三列进行排序。

This is my input dataframe This is my dataframe after applying groupby and mean function

我使用以下代码行对输入数据框进行分组, df_o=df.groupby(by=['Organization Group','Department']).agg({'Total Compensation':np.mean})

请告诉我如何使用 pandas 对第一列中每个组的最后一列进行排序。

【问题讨论】:

    标签: python sorting pandas


    【解决方案1】:

    看来你需要sort_values:

    #for return df add parameter as_index=False
    df_o=df.groupby(['Organization Group','Department'], 
                     as_index=False)['Total Compensation'].mean()
    df_o = df_o.sort_values(['Total Compensation','Organization Group'])
    

    示例:

    df = pd.DataFrame({'Organization Group':['a','b','a','a'],
                       'Department':['d','f','a','a'],
                       'Total Compensation':[1,8,9,1]})
    
    print (df)
      Department Organization Group  Total Compensation
    0          d                  a                   1
    1          f                  b                   8
    2          a                  a                   9
    3          a                  a                   1
    
    df_o=df.groupby(['Organization Group','Department'], 
                    as_index=False)['Total Compensation'].mean()
    print (df_o)
      Organization Group Department  Total Compensation
    0                  a          a                   5
    1                  a          d                   1
    2                  b          f                   8
    
    df_o = df_o.sort_values(['Total Compensation','Organization Group'])
    print (df_o)
      Organization Group Department  Total Compensation
    1                  a          d                   1
    0                  a          a                   5
    2                  b          f                   8
    

    【讨论】:

    • 我收到以下错误“KeyError: 'Organization Group'”
    • 我希望输出采用以下格式 Organization_group Department Total Compensation a a 5 no val d 1 b f 8
    猜你喜欢
    • 2021-04-13
    • 1970-01-01
    • 2018-04-11
    • 2020-02-22
    • 2021-03-09
    • 2020-09-12
    • 2021-08-26
    • 2022-01-21
    相关资源
    最近更新 更多