You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas获取各数值列均值最大的Type 1分组名称?

解决方法

直接用Pandas的idxmax()方法就能搞定,这是最简洁的实现方式,步骤如下:

  1. 加载数据并计算分组均值(和你已实现的部分衔接)
import pandas as pd

# 加载Pokemon数据集(替换成你的文件路径)
df = pd.read_csv('pokemon.csv')

# 指定需要计算的数值列
numeric_cols = ['Total', 'HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed']

# 按Type 1分组,计算各数值列的均值
grouped_means = df.groupby('Type 1')[numeric_cols].mean()
  1. 获取每个数值列均值最大的分组名称
    idxmax()方法会返回每一列最大值对应的行索引(这里的行索引就是Type 1的分组名称),一行代码就能得到结果:
max_mean_groups = grouped_means.idxmax()

打印结果示例:

Total       Dragon
HP          Dragon
Attack      Dragon
Defense     Steel
Sp. Atk     Dragon
Sp. Def     Steel
Speed       Electric
dtype: object
  1. (可选)同时展示最大均值数值和对应分组
    如果想把最大均值和分组名称放在一起看,用concat合并结果:
# 合并最大均值和对应分组
result = pd.concat([grouped_means.max(), grouped_means.idxmax()], axis=1)
# 设置列名更直观
result.columns = ['最大均值', '对应Type 1分组']
print(result)

输出示例:

最大均值 对应Type 1分组
Total    550.53      Dragon
HP       106.67      Dragon
Attack   134.88      Dragon
Defense  126.38       Steel
Sp. Atk  120.53      Dragon
Sp. Def  110.14       Steel
Speed     93.50    Electric

关键说明

  • groupby('Type 1')之后,grouped_means的行索引是所有Type 1的分组,列是你指定的数值列。
  • idxmax()针对每一列,找到该列最大值所在的行索引,也就是均值最大的那个Type 1分组名称,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者MathsUndergrad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 02:45:44