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

Python新手求助:Jupyter Notebook手动上传CSV后代码无法运行

解决方法

1. 修复原代码的基础错误

你的代码存在两个直接导致运行失败的问题:

  • cols 和 data 变量未提前初始化,直接调用会触发NameError
  • 未处理CSV中可能存在的空行,容易引发后续转换错误

修改后的代码如下:

import numpy as np
import pickle
import pandas as pd

filename = "load.csv"
cols = None  # 初始化表头变量
data = []    # 初始化数据列表

with open(filename) as f:
    for line in f.readlines():
        line = line.strip()  # 替代replace("\n", ""),同时去除首尾空格
        if not line:  # 跳过空行
            continue
        vals = line.split(",")
        if cols is None:
            cols = vals
        else:
            # 增加异常处理,避免非数值内容导致崩溃
            try:
                data.append([float(x) for x in vals])
            except ValueError as e:
                print(f"跳过无效行: {line}, 错误原因: {e}")

2. 确认文件路径正确性

手动上传到Jupyter Notebook后,需确保文件在当前工作目录:

  • 运行!pwd(Linux/macOS)或!cd(Windows)查看当前路径
  • 或者执行import os; print(os.listdir()),检查输出中是否有load.csv

如果文件不在当前目录,需填写完整路径,比如filename = "./upload/load.csv"(相对路径)或filename = "C:/Users/xxx/load.csv"(Windows绝对路径)。

3. 更简洁的推荐方案

既然已经导入了pandas,完全不需要手动解析CSV,一行代码就能完成读取:

import pandas as pd

# 直接读取CSV为DataFrame
df = pd.read_csv("load.csv")
# 按需转换为列表格式
data = df.values.tolist()
cols = df.columns.tolist()

这种方式会自动处理表头、空行、数据类型转换,比手动写循环更稳定高效。

内容的提问来源于stack exchange,提问作者Jaya Asiri Prem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:02:42