首页 > 解决方案 > 如何从查询中获取列名?

问题描述

我有以下数据框:

City   Obesity   Asthma   Diabetes
London 403221    412331   445121
Paris  104221    211227   201771
Berlin 322128    365119   309233
...    ...       ...      ...

我想得到最常见的城市名称和死亡名称。我可以使用它得到最大值df.groupby("City")[["Obesity", "Asthma", "Diabetes"]].sum().max(axis=1),如下所示:

City
London  445121
Paris   211227
Berlin  365119
...

我想要的看起来像这样:

City
London  Diabetes
Paris   Asthma
Berlin  Asthma

标签: python-3.xpandas

解决方案


利用idxmax

df.groupby("City")[["Obesity", "Asthma", "Diabetes"]].sum().idxmax(axis=1)

如果城市名称是唯一的,则使用

df.set_index('City').idxmax(axis=1)

推荐阅读