熊猫过滤器最大分组

时间:2020-06-07 14:18:04

标签: pandas dataframe filter minimax

我有熊猫df:

family  age fruits
------------------
Brown   12  7
Brown   33  5
Yellow  28  3
Yellow  11  9

我想让年龄符合以下条件:

  1. 按家庭分组;
  2. 最多有水果

因此,结果df为:

family  age
-----------
Brown   12
Yellow  11

2 个答案:

答案 0 :(得分:3)

我们可以做到:

(df.sort_values(['family','fruits'], ascending=[True,False])
   .drop_duplicates('family')
)

输出:

   family  age  fruits
0   Brown   12       7
3  Yellow   11       9

或与groupby().idxmax()

df.loc[df.groupby('family').fruits.idxmax(), ['family','age'] ]

输出:

   family  age
0   Brown   12
3  Yellow   11

答案 1 :(得分:1)

head之后使用sort_values

df.sort_values(['family','fruits'], ascending=[True,False]).groupby('family').head(1)