Google Colab中pd.read_csv读取CSV报TypeError如何解决
问题引发原因
报错核心是变量名混用导致传参错误:pandas.read_csv()的dtype参数作用是指定读取时各列的数据类型,要求传入类型标识、或者列名到类型的映射字典,但你代码中传入的data_dir变量存储的并不是类型配置,而是Kaggle平台上该采矿质量预测数据集的标识字符串quality-prediction-in-a-mining-process。pandas尝试将这个字符串解析为数据类型时无法识别,就抛出了对应TypeError。
你之前尝试的重命名文件夹、重连Colab运行时操作没有生效,是因为问题和文件路径、运行时连接状态无关,完全是参数传入错误导致的。
修复方法
- 先梳理代码中的变量定义:区分存储文件路径/数据集名称的变量、存储待读取列列表的
need_cols变量、存储列数据类型配置的变量,不要混用变量名。如果你之前把类型配置错误赋值给了data_dir,把对应内容迁移到专门的类型配置变量(比如命名为col_dtypes)即可,类型配置的格式参考:{"列名1": float, "列名2": int}。 - 修正
read_csv语句的传参:把错误的dtype=data_dir替换为你定义好的类型配置变量。如果你没有提前配置列类型的需求,可以直接删掉dtype参数,让pandas自动推断各列类型。
修正后的参考代码:import pandas as pd # 按需配置要读取的列 need_cols = ["% Iron Feed", "% Silica Feed", "Starch Flow", "% Iron Concentrate", "% Silica Concentrate"] # 配置对应列的读取类型 col_dtypes = {col: "float64" for col in need_cols} # 正确传参读取文件 df = pd.read_csv( "/content/quality/MiningProcess_Flotation_Plant_Database.csv", usecols=need_cols, dtype=col_dtypes ) - 传参修正完成后,如果出现文件找不到类的报错,再检查对应路径下是否确实存在目标CSV文件,确认Kaggle API下载的数据集已经正确解压到指定目录即可。
内容的提问来源于stack exchange,提问作者AswinBravissimo
相关产品推荐
相关产品推荐

