使用pandas groupby获取对应于最小值的行

时间:2019-01-12 02:27:32

标签: python pandas dataframe group-by pandas-groupby

我有一个表需要按条件分组:

DependencyProperty

当我使用它时,它会给我R_num ORG name level 13 Dm Ad 17 13 Dm Af 16 ,就像被操纵的数据一样。

13 Dm Ad 16

我想要的结果是df1=df.reset_index().groupby(['R_num','ORG']).agg({'name':'first','level':['min']}) ,我知道13 Dm Af 16可能有问题,但是我该如何解决?

谢谢

2 个答案:

答案 0 :(得分:3)

IIUC,您应该使用groupbyidxmin

# df.loc[df.groupby(['R_num','ORG'])['level'].agg('idxmin')]
df.loc[df.groupby(['R_num','ORG'])['level'].idxmin()]

   R_num ORG name  level
1     13  Dm   Af     16

答案 1 :(得分:3)

drop_duplicates之后使用sort_values

newdf = df.sort_values('level').drop_duplicates(['R_num','ORG'])
newdf
   R_num ORG name  level
1     13  Dm   Af     16