Python Pandas Dataframe select row by max value in group

前端 未结 2 831
广开言路
广开言路 2020-12-13 06:50

I have a dataframe which was created via a df.pivot:

type                             start  end
F_Type         to_date                     
A              2         


        
2条回答
  •  北荒
    北荒 (楼主)
    2020-12-13 07:30

    The other ways to do that are as follow:

    1. If you want only one max row per group.
    (
        df
        .groupby(level=0)
        .apply(lambda group: group.nlargest(1, columns='to_date'))
        .reset_index(level=-1, drop=True)
    )
    
    1. If you want to get all rows that are equal to max per group.
    (
        df
        .groupby(level=0)
        .apply(lambda group: group.loc[group['to_date'] == group['to_date'].max()])
        .reset_index(level=-1, drop=True)
    )
    

提交回复
热议问题