[英]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.