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

Python读取CSV文件提取C1列值赋值给变量的代码问题排查

错误原因

你此前读取CSV生成的items字典结构本身符合预期:items['C1']已经存储了C1列所有行的字符串格式数值,问题出在后续的取值逻辑:

  • 你遍历了items的所有键,排除Item后还会遍历C1、C2、C3、Constant四个键,每次循环都会重新给c1赋值为单个float值,最终c1只会保留最后一次循环的单个值,无法得到整列数据
  • 你每次取items[key][0]的逻辑仅能获取当前键对应列表的第一个元素,没有遍历整列的操作
修正方案

直接提取items['C1']的所有元素批量转换为float即可,不需要遍历items的所有键,替换原有代码最后一段for循环的内容即可:

# 提取C1列所有值,生成float格式的列表
c1 = [float(val) for val in items['C1']]
# 其余列提取逻辑同理
c2 = [float(val) for val in items['C2']]
c3 = [float(val) for val in items['C3']]
constant = [float(val) for val in items['Constant']]

可选优化

读取文件建议使用with open()语法,会自动完成文件关闭操作,避免资源泄漏,完整读取代码如下:

import csv

items = dict()
headers = []

with open('Items.csv', encoding='utf-8-sig') as file:
    reader = csv.reader(file, delimiter=',')
    headersRead = False
    for row in reader:
        if not headersRead:
            items = {header: [] for header in row}
            headers = row
            headersRead = True
        else:
            for idx, val in enumerate(row):
                items[headers[idx]].append(val)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:03