簡體   English   中英

Pandas groupby 獲取另一列最小的列的值

[英]Pandas groupby get value of a column where another column is minimum

我有一個像這樣的數據框df

地區 模型 指標
東京 有馬 0.1
東京 前饋 0.2
東京 深度增強現實 0.3
大阪 有馬 0.5
大阪 前饋 0.2
大阪 深度增強現實 0.1

我想按region進行分組並返回每個組中metrics的最小值,以及metrics最小的model值。

預期結果:

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

我試着像下面那樣做,但不知道如何完成:

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

也許使用argmin 任何幫助將不勝感激。 謝謝!

如何按度量值排序並刪除重復項,保留最小的像這樣。

df.sort_values("metrics").drop_duplicates(['region'], keep='first')

你可以找到的最小度量每個組,然后的索引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

(也許預測會很有趣!)

df.groupby("region").agg({'metrics':['min']})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM