如何使用Python读取CSV的PRCP列求和计算年度降水总量
年度降水总量统计实现
核心要求
- 读取CSV文件内
PRCP列的所有数值,求和得到年度降水总量 - 依赖限制:仅使用Python内置
csv模块、pathlib库的Path类 - 给定测试数据运行结果需为
1
测试用CSV数据
STATION NAME, DATE, PRCP, TMAX, TMIN USW00023183PHOENIX AIRPORT, 1/1/2020, 1, 60, 40 USW00023183PHOENIX AIRPORT, 1/2/2020, 0, 64, 41
正确实现代码
import csv from pathlib import Path # 此处替换为你的CSV文件实际存储路径 csv_path = Path("precipitation_2020.csv") total_precip = 0 with csv_path.open("r", encoding="utf-8") as f: # skipinitialspace=True 用于处理逗号后带空格的CSV格式,避免字段名带多余空格 reader = csv.DictReader(f, skipinitialspace=True) for row in reader: # PRCP读入为字符串,需转整数后累加 total_precip += int(row["PRCP"]) print(total_precip)
传入上述测试数据运行,输出结果为1,符合要求
原有代码问题梳理
- 初始将存储累加值的变量设为整数0,直接对整数做for循环遍历,属于语法错误,整数不可迭代
- 未初始化csv读取对象
reader就直接在循环中调用,会触发变量未定义错误 - 循环过程中反复将累加变量覆盖为当前行的PRCP值,没有实现累加逻辑
- 存在无效语法
prcps>0[month],整数类型不支持下标索引操作 - 第二个循环的循环变量和实际取值变量不匹配,循环遍历的是
PRCP,取值时却用了前一个循环残留的item变量,逻辑完全混乱 - 累加逻辑写为
perp += perp,是变量自身翻倍,不是累加当前行的降水量,逻辑错误
内容的提问来源于stack exchange,提问作者Bsdasd sadasdas
相关产品推荐
相关产品推荐

