如何计算CSV文件中指定列数值列表的中位数
解决方案
你的代码存在两个核心问题:
- 缺少读取CSV文件、提取第三列体重数据的逻辑,
file_data变量未定义 - 奇偶分支分别定义了
mediankg和mediankg1两个变量,打印时会出现变量未定义的报错
完整可运行代码
import csv # 读取CSV提取第三列体重数据 file_data = [] # 替换为你的CSV文件实际路径 with open('height_weight.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) # 跳过表头行 next(reader) for row in reader: # 第三列索引为2,转成浮点数存入列表 weight = float(row[2]) file_data.append(weight) def median(data): n = len(data) # 排序副本,不修改原数据 sorted_data = sorted(data) if n % 2 == 0: median1 = sorted_data[n//2] median2 = sorted_data[n//2 - 1] median_pound = (median1 + median2) / 2 else: median_pound = sorted_data[n//2] median_kg = median_pound / 2.2046 print("MEDIAN") print(f"Median is {median_pound} pounds") print("OR") print(f"Median is {median_kg} kilograms") # 传入提取好的体重数据调用函数 median(file_data)
运行说明
- 把代码里的
height_weight.csv替换为你本地CSV文件的实际路径即可运行 - 用你提供的27条样例数据测试,输出结果为129.7244磅,约58.84公斤
内容的提问来源于stack exchange,提问作者MjO7
相关产品推荐
相关产品推荐

