基于组最大值的列的Python数据帧设置值

2024-09-26 22:51:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧

   id   Area Country
0  11  34.45  Norway
1  12  30.25      UK
2  13  16.70    Iran
3  11  35.45  Sweden
4  13  20.22    Iraq
5  15  35.12     USA

dfObj['BigCountry'] = ''
dfObj['SmallCountry'] = ''

根据地区,我想把这个国家分为大小。我试图按id分组,然后根据组内的最大值(面积),我想设置小/大国家

输出应该是

   id  BigCountry  SmallCountry   
0  11  Sweden         Norway
1  12  UK             UK           
2  13  Iraq           Iran
5  15  USA            USA 

Tags: 数据idarea国家country地区iranuk
1条回答
网友
1楼 · 发布于 2024-09-26 22:51:22

一种方法是使用set_index然后使用groupbyaggidxmaxidxmin

df.set_index('Country').groupby('id')['Area'].agg(['idxmax','idxmin'])\
  .rename(columns = {'idxmax':'BigCountry', 'idxmin':'SmallCountry'})

输出:

   BigCountry SmallCountry
id                        
11     Sweden       Norway
12         UK           UK
13       Iraq         Iran
15        USA          USA

相关问题 更多 >

    热门问题