如何用Pandas GroupBy按物种计算均值?现有代码仅能算列整体均值
按物种分组计算均值的Pandas实现方案
没问题,我来帮你把代码改成按物种分组计算均值的版本,用Pandas的GroupBy功能处理这类带分类标签的统计需求特别顺手!
原代码的局限
你之前用Numpy的方式只能计算整列的整体均值,没法关联到每个物种的分组信息——而Pandas的DataFrame可以把数值数据和分类标签(比如物种)绑定在一起,完美解决这个问题。
改造后的完整代码
# 导入Pandas库 import pandas as pd # 读取鸢尾花数据集,假设最后一列是物种名称;如果你的csv有表头,去掉header=None和names参数即可 df = pd.read_csv('data/iris.csv', header=None, names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species']) # 按物种分组,计算所有数值列的均值 species_grouped_means = df.groupby('species').mean() # 打印结果 print("各物种的特征均值:") print(species_grouped_means) # 如果只想单独看某一列(比如第一列sepal_length)的分组均值,可以这样写 # print("各物种的花萼长度均值:") # print(df.groupby('species')['sepal_length'].mean())
代码解释
pd.read_csv(...):把csv文件读取成DataFrame,这里给每一列指定了名称(如果你的原始数据已经有表头,直接用pd.read_csv('data/iris.csv')就行)。groupby('species'):按照species列的不同取值(也就是不同物种)对数据进行分组。.mean():对每个分组里的所有数值列自动计算均值,最终会返回一个以物种为索引、各特征均值为列的结果表。
这样你就能清晰看到每个物种对应的各项特征均值啦!
内容的提问来源于stack exchange,提问作者C. Drummond
相关产品推荐
相关产品推荐

