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

如何在Python中不修改CSV文件跳过每行首元素

解决CSV首列是字符串时的数值提取问题

你当前的核心问题是逻辑搞反了CSV的结构:你的CSV第一行表头是年份(1998、1999...),每行的首元素是地区名称(America、Asia等),但原代码错误地把每行首元素当成年份去转int,自然会报错;同时你想把每个地区对应的各年份数值存入对应列表,原代码的赋值逻辑也完全不对。

修正思路

  1. 先读取表头行,提取其中的年份(跳过第一个"Area"字段),转为整数存入years列表
  2. 遍历数据行时,先获取地区名称,再将该行后续的所有数值转为浮点数,根据地区名称添加到对应列表中

修正后的代码(对应原有的多个列表)

import csv

with open("C:/Users/yuhon/Downloads/sgexports_dataset.csv") as openfile: 
    csvreader = csv.reader(openfile) 
    # 读取表头,提取年份(跳过第一个Area字段)
    header = next(csvreader)
    years = [int(year) for year in header[1:]]
    
    # 初始化各地区列表
    americaExports = [] 
    asiaExports = [] 
    europeExports = []
    oceaniaExports = [] 
    africaExports = []
    euExports = [] 
    
    for row in csvreader: 
        area = row[0]
        # 提取当前地区的所有出口数值,转为float
        exports = [float(num) for num in row[1:]]
        # 根据地区名称将数值列表存入对应变量
        if area == "America":
            americaExports = exports
        elif area == "Asia":
            asiaExports = exports
        elif area == "Europe":
            europeExports = exports
        elif area == "Oceania":
            oceaniaExports = exports
        elif area == "Africa":
            africaExports = exports
        elif area == "European Union":
            euExports = exports

更简洁的实现(用字典映射地区和列表)

如果不想写一堆条件判断,可以用字典来管理地区和对应的数据,扩展性更好:

import csv

with open("C:/Users/yuhon/Downloads/sgexports_dataset.csv") as openfile: 
    csvreader = csv.reader(openfile) 
    header = next(csvreader)
    years = [int(year) for year in header[1:]]
    
    # 用字典存储地区和对应出口数据
    export_data = {}
    
    for row in csvreader: 
        area = row[0]
        export_data[area] = [float(num) for num in row[1:]]
    
    # 如需单独提取各地区数据,直接从字典中取
    americaExports = export_data["America"]
    asiaExports = export_data["Asia"]
    # 其他地区以此类推

关键说明

  • 全程不需要修改原CSV文件,所有数据处理都在内存中完成
  • 原代码使用pop导致循环异常,是因为pop会修改原行列表,但这里根本不需要修改行结构,只需跳过首元素处理后续数值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:54:51