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

如何解决pandas从URL读取CSV时出现的数据分词报错问题?

问题原因

ARK官网发布的持仓CSV末尾会追加非结构化的版权/日期说明行,列数和表头不匹配,导致pandas默认解析失败,和你判断的最后一行内容动态变化的情况一致。

修复方案

方案1:固定跳过末尾1行(轻量快速)

ARK的持仓CSV末尾固定只有1行无效说明,直接用skipfooter参数跳过即可:

import pandas as pd
url = "https://ark-funds.com/wp-content/uploads/funds-etf-csv/ARK_INNOVATION_ETF_ARKK_HOLDINGS.csv"
# skipfooter指定跳过最后N行,该参数需要搭配python解析引擎使用
test = pd.read_csv(url, skipfooter=1, engine='python')

方案2:动态过滤有效行(兼容性更强,适配末尾行数变化的场景)

如果后续末尾无效行数量发生变动,可以先拉取完整文本,筛选列数和表头一致的有效行再解析:

import pandas as pd
import requests
from io import StringIO

url = "https://ark-funds.com/wp-content/uploads/funds-etf-csv/ARK_INNOVATION_ETF_ARKK_HOLDINGS.csv"
# 拉取原始CSV文本
resp = requests.get(url)
resp.encoding = "utf-8"
all_lines = resp.text.strip().split("\n")
# 按表头的逗号数量筛选列数匹配的有效行
header_sep_count = all_lines[0].count(",")
valid_lines = [line for line in all_lines if line.count(",") == header_sep_count]
# 拼接有效行后解析为DataFrame
test = pd.read_csv(StringIO("\n".join(valid_lines)))

如果仍存在少量格式异常的行,可以在pd.read_csv中追加参数on_bad_lines='skip'自动跳过异常行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:15:04