python - Pandas groupby 获取另一列最小的列的值

标签 python pandas group-by

我有一个数据框df像这样:

<表类=“s-表”> <标题> 地区 型号 指标 <正文> 东京 ARIMA 0.1 东京 前馈 0.2 东京 DeepAR 0.3 大阪 ARIMA 0.5 大阪 前馈 0.2 大阪 DeepAR 0.1

我想按 region 对其进行分组并返回 metrics 的最小值每个组中,以及 model值其中 metrics是最小值。

预期结果:

| region | model | metrics|
| -------- | --------- |----|
| Tokyo    | ARIMA |0.1|
| Osaka    | DeepAR    |0.1|

我尝试像下面这样做,但不确定如何完成:

df.groupby("region").agg({'metrics':'min', ####... })

也许使用argmin ?任何帮助将不胜感激。谢谢!

最佳答案

您可以找到每个组的最小指标的索引,然后将其loc到原始帧中:

# not sorting to keep the original order of appearance of regions
min_inds = df.groupby("region", sort=False).metrics.idxmin()
result = df.loc[min_inds]

获取

>>> result

  region   model  metrics
0  Tokyo   ARIMA      0.1
5  Osaka  DeepAR      0.1

(愿预测很有趣!)

关于python - Pandas groupby 获取另一列最小的列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68168208/

相关文章:

sql - 使用另一个行聚合函数进行分组

sql - 棘手的 SQL SELECT 语句 - 将两行合并为两列

名为捕获的 Python 正则表达式子

python - 在 Python 中释放打开的 ctypes 库

python - 将 Pandas DataFrame 列转换为行

pandas - 根据 pandas 中的 groupby 或循环条件划分列

python - SetSystemTime 总是根据时区添加小时

python - 使用 SublimeREPL 和 Python 3 进行 Sublime 构建

python - 使用 re 从 .pgn (字符串行)构建数据框

MYSQL max() 和 group by 错误:only_full_group_by