如何在Python Pandas中按supp和dose分组计算均值与标准差?
解决Pandas分组同时计算均值和标准差的问题
当然可以一次性完成这两个统计量的计算,你之前的代码错误在于agg函数的参数格式不符合要求。以下是正确的实现方法:
完整代码示例
import pandas as pd # 读取CSV数据(直接兼容你提供的带引号的CSV格式) data = pd.read_csv('your_data.csv') # 替换为你的文件路径,也可直接传入CSV字符串 # 按"supp"和"dose"分组,对"len"列计算均值和标准差 result = data.groupby(['supp', 'dose'])['len'].agg(['mean', 'std']) # 可选:保留两位小数优化结果展示 result = result.round(2) print(result)
代码说明
- 参数格式修正:你之前写的
{['mean', 'std']}是无效的字典结构,正确写法需要指定计算统计量的目标列(这里是len),再传入统计量列表。 - 简化写法:如果要对所有数值型列统一计算这两个统计量,可省略列名直接写:
result = data.groupby(['supp', 'dose']).agg(['mean', 'std']) - 结果样式调整:
round(2)可以将结果保留两位小数,让输出更整洁。
示例输出
mean std supp dose OJ 0.5 13.23 4.46 1.0 22.70 3.91 2.0 26.06 2.65 VC 0.5 7.98 2.75 1.0 16.77 2.52 2.0 26.14 4.70
内容的提问来源于stack exchange,提问作者cinnamond
相关产品推荐
相关产品推荐

