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

如何在Python 3中逐行遍历CSV数值数据并按10行分组求均值

解析单列CSV并按10行分组计算均值

你的问题核心是没搞清楚单列CSV的结构:每行只有一个数值,所以row[1]是不存在的,这也是你之前尝试相加时出错的原因。下面直接给你可行的解决方案,按需求实现每10行计算均值并做条件判断:

步骤说明

  1. 先读取CSV文件,把所有数值转成float类型存入列表,方便后续处理
  2. 按每10行一组拆分数据,最后一组不足10行也正常处理
  3. 对每组计算均值,然后根据均值执行你的条件判断逻辑

完整代码示例

import csv

# 读取所有数值到列表
data = []
with open('grayramp_line28_NoHblank.csv', newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        # 单列数据,取row[0]转成float
        num = float(row[0])
        data.append(num)

# 按每10行分组处理
group_size = 10
for i in range(0, len(data), group_size):
    # 取出当前组的10个数据(最后一组可能不足10个)
    group = data[i:i+group_size]
    # 计算均值
    avg = sum(group) / len(group)
    print(f"第{i//group_size + 1}组均值: {avg:.4f}")
    
    # 这里写你的条件判断逻辑,示例:
    if avg > 0:
        print("    均值大于0,执行对应操作")
    elif avg < -0.16:
        print("    均值小于-0.16,执行对应操作")
    else:
        print("    均值在范围内,执行对应操作")

关键说明

  • 你的原始代码里row[1]会引发索引错误,因为CSV是单列,每行只有row[0]有效
  • 用range(0, len(data), group_size)可以自动按步长10遍历所有分组,不用手动计数
  • 最后一组不足10行时,data[i:i+group_size]会自动取到列表末尾,len(group)会正确计算当前组的行数,均值计算不会出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:47:11