Pandas 过滤最大分组依据
Pandas filter maximum groupby
我有 Pandas df:
family age fruits
------------------
Brown 12 7
Brown 33 5
Yellow 28 3
Yellow 11 9
我想获得下一个条件的年龄:
- 按家庭分组;
- 水果最多
所以结果 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)
我有 Pandas df:
family age fruits
------------------
Brown 12 7
Brown 33 5
Yellow 28 3
Yellow 11 9
我想获得下一个条件的年龄:
- 按家庭分组;
- 水果最多
所以结果 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)