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

pandas read_csv读取远程CSV触发IncompleteRead错误求解决

解决IncompleteRead错误的可行方案

这个错误是网络传输时数据未完整接收导致的,和本地Python/pandas版本、设备无关,以下是几种解决办法:

  • 手动下载文件后读取
    直接访问目标链接下载data.csv到本地,然后修改代码读取本地文件:

    df_commuter = pd.read_csv("本地文件路径/data.csv")
    df_commuter.head()
    

    这是最稳妥的方案,彻底绕开网络传输问题。

  • 用requests加重试机制获取完整数据
    pandas自带的URL读取逻辑没有重试机制,改用requests库实现带重试的请求,确保数据完整接收:

    import pandas as pd
    import requests
    from io import StringIO
    from requests.adapters import HTTPAdapter
    from urllib3.util.retry import Retry
    
    # 配置会话,添加重试策略
    session = requests.Session()
    retry_strategy = Retry(
        total=5,
        backoff_factor=1,
        status_forcelist=[429, 500, 502, 503, 504]
    )
    adapter = HTTPAdapter(max_retries=retry_strategy)
    session.mount("https://", adapter)
    session.mount("http://", adapter)
    
    # 获取数据并读取
    url = "https://github.com/uber-web/kepler.gl-data/raw/master/ukcommute/data.csv"
    response = session.get(url)
    response.raise_for_status()  # 抛出请求错误
    df_commuter = pd.read_csv(StringIO(response.text))
    df_commuter.head()
    
  • 分块读取大文件
    针对大文件传输易中断的情况,用pandas的chunksize参数分块读取,同时设置超时:

    import pandas as pd
    
    url = "https://github.com/uber-web/kepler.gl-data/raw/master/ukcommute/data.csv"
    # 分块读取,每块10000行,超时30秒
    chunk_iter = pd.read_csv(url, chunksize=10000, timeout=30)
    df_commuter = pd.concat(chunk_iter, ignore_index=True)
    df_commuter.head()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:12:15