我有熊猫df:
family age fruits
------------------
Brown 12 7
Brown 33 5
Yellow 28 3
Yellow 11 9
我想让年龄符合以下条件:
因此,结果df为:
family age
-----------
Brown 12
Yellow 11
答案 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)