熊猫过滤最大分组依据



我有熊猫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

我们可以做到:

(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

sort_values后使用head

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

最新更新