You need to enable JavaScript to run this app. Mac环境下使用pandas读取CSV触发EmptyDataError的问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Mac环境下使用pandas读取CSV触发EmptyDataError的问题求助

修复Mac环境下CSV读取报错的方案

核心问题根因

两个连续报错是独立问题叠加导致的,没有逻辑上的关联:

  1. 误将CSV文件作为SQLite数据库连接,触发OperationalError: unable to open database file
  2. 路径写法不符合Mac系统规则,导致pandas读到空文件,触发EmptyDataError: No columns to parse from file

分项排查与修复

1. 纠正SQLite连接的逻辑错误

sqlite3.Connection()仅支持打开SQLite格式生成的.db/.sqlite二进制数据库文件,完全不支持直接解析CSV格式文件。

  • 之前直接把CSV路径传给sqlite连接的写法本身逻辑不成立,哪怕路径完全正确也一定会报数据库打开失败的错误。
  • 如果需要用SQLite查询CSV数据,正确流程是:
    • 先用pandas正常读取CSV拿到DataFrame对象
    • 建立空的SQLite连接后,通过DataFrame.to_sql()方法将CSV数据写入SQLite库中,再执行后续查询

2. 修正Mac环境下的路径写法

你之前写的两个路径都不符合Mac系统的路径规则:

  • 错误写法1(Windows反斜杠格式):Users\syedwaqar\Huma-IBM-ML\healthcare-dataset-stroke-data.csv
    Mac系统下反斜杠是字符串转义符,\s、\H这类转义序列会被解析成特殊控制字符,完全无法匹配到真实路径。
  • 错误写法2(缺根目录斜杠的相对路径):Users/syedwaqar/Huma-IBM-ML/healthcare-dataset-stroke-data.csv
    Mac系统的绝对路径必须以根目录的/开头,缺了开头斜杠后,程序会从当前代码运行的工作目录下,找名为Users的子文件夹,根本定位不到你存储在系统用户目录下的CSV文件。
  • 正确的绝对路径写法:/Users/syedwaqar/Huma-IBM-ML/healthcare-dataset-stroke-data.csv

3. 解决pandas读取触发的EmptyDataError

这个报错的触发条件是pandas读到的目标文件没有任何可解析的列内容(通常是文件大小为0)。
很多人会疑惑为什么路径错了没报FileNotFoundError反而报文件为空——这是因为Python在拼接路径时,会在相对路径指向的目录下匹配到同名的0字节占位文件,导致pandas根本没打开你本地存储的有真实数据的CSV。
可以在执行pd.read_csv()之前加几行校验代码,确认路径指向的文件状态:

import os
target_path = "/Users/syedwaqar/Huma-IBM-ML/healthcare-dataset-stroke-data.csv"
# 校验1:路径是否能匹配到真实存在的文件
print("文件是否存在:", os.path.exists(target_path))
# 校验2:文件大小是否为非0
print("文件大小(字节):", os.path.getsize(target_path))
  • 如果校验返回文件不存在,直接把文件从Finder拖入终端,就能自动生成真实的绝对路径,替换掉代码里的路径即可
  • 如果校验返回文件大小为0,说明路径指到了空文件,替换成正确路径后就能正常读取

内容的提问来源于stack exchange,提问作者S HUMA SHAH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 10:36:03