首页 > 解决方案 > 如何将具有分组依据的列的最大值和最小值提取到嵌套字典中

问题描述

我想提取由另一个分组的列的最小值和最大值,例如:

first_dict = dict(df_test.groupby('country')['population'].max())
second_dict = dict(df_test.groupby('country')['population'].min())

期望的输出:

all_dict = 
{'Germany': {Max: 83, Min: 10}}, {'France': {Max: 63, Min: 12}}

标签: pythondictionarynested

解决方案


你可以使用dict理解。

例如,启动数据框:

df = pd.DataFrame({'country':['Germany', 'Germany', 'Germany', 'France', 'France', 'France'], 'population':[10, 20, 83, 12, 15, 63]})

   country  population
0  Germany          10
1  Germany          20
2  Germany          83
3   France          12
4   France          15
5   France          63

然后:

d = {g[1]['country'].values[0]: {'max': g[1]['population'].max(), 'min': g[1]['population'].min()} for g in df.groupby('country')}

print(d)

印刷:

{'France': {'max': 63, 'min': 12}, 'Germany': {'max': 83, 'min': 10}}

推荐阅读