Python 分组 - 只列出最小值行

Python Grouping - list only the minimum value row

我有一个问题,我只能假设这是一个简单的问题,如果有人能够帮助解决我出错的地方,我将不胜感激。

下面是我在堆栈上搜索时找到的解决方案 - 不幸的是,这不是我要找的:

p2all.loc[p2all.groupby('emotion').age.idxmin()]

下面是我的代码,它几乎可以正常工作,但不完全是:

p2all.groupby(['emotion']).emotion.agg(['count'])

我的查询给出了这些结果:

我现在要做的只是显示最小值,即 Euphoric 658 和其他 none,但在 google 和堆栈 2 小时后,我要么完全失踪它,或者我正在搜索不正确的东西。

奇怪的是,这是我可以在 SQL 中轻松完成的事情:/

使用groupby聚合函数后得到的对象是一个系列。您可以简单地使用级数函数来获取最小值或最大值或任何您想要的值。

series = p2all.groupby('emotion')['emotion'].agg('count')


min_idx = series.idxmin()

min_val = series.loc[min_idx]


print(f" emotion: {min_idx}, value: {min_val}")

(min_idx, min_val) 就是您要找的。