我有以下数据框
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进行分组,然后根据要设置小国/大国的组中的max(area)
输出应为
id BigCountry SmallCountry
0 11 Sweden Norway
1 12 UK UK
2 13 Iraq Iran
5 15 USA USA
最佳答案
一种方法是将set_index
然后将groupby
和agg
与idxmax
和idxmin
一起使用:
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
关于python - 基于组最大值的列的Python Dataframe设置值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58468073/