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

如何用简洁Pythonic代码计算CSV文件中high列的平均值?

解决CSV文件"high"列平均值计算的Python风格方案

我来帮你搞定这个问题!先看看你现有代码里的小bug,再给你几个简洁、符合Python风格的解决方案~

首先修正你现有代码的问题

你写的代码里,循环计算了high = int(row['high']),但没有把这个值添加到highs列表中,导致最后highs是空的,执行sum(highs)/len(highs)会报错。修正后的基础版本如下:

import csv

with open('2010-Jan-June.csv', 'r', encoding='utf8', newline='') as f:
    highs = []
    for row in csv.DictReader(f, delimiter=','):
        highs.append(int(row['high']))  # 关键:把high添加到列表
print(sum(highs)/len(highs))

更Pythonic的简洁方案

方案1:用生成器表达式节省内存(适合大文件)

不需要显式构建完整列表,用生成器逐行读取计算,内存占用更低,同时避免空文件除以0的风险:

import csv

with open('2010-Jan-June.csv', 'r', encoding='utf8', newline='') as f:
    reader = csv.DictReader(f)
    total_high = 0
    count = 0
    for row in reader:
        total_high += int(row['high'])
        count += 1
print(total_high / count if count > 0 else 0)

方案2:一行搞定的pandas方案(最简洁)

如果可以使用第三方库,pandas处理CSV数据堪称神器,一行代码就能完成计算,还自动处理空值、类型转换等细节:

import pandas as pd

# 读取CSV并直接计算"high"列的平均值
print(pd.read_csv('2010-Jan-June.csv')['high'].mean())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:40:06