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

如何将.zst解压数据加载到Pandas DataFrame?解决文件名过长错误

解决.csv.zst文件加载到Pandas DataFrame的问题

你的问题核心在于:解压后得到的decompressed是字节类型的CSV内容,但你错误地把它当成文件路径传给了open(),这才触发了File name too long错误——open()只接受文件路径字符串,不识别完整的文件内容字节。

直接用io.BytesIO把解压后的字节数据包装成类文件对象,就能让pd.read_csv直接读取,不需要额外写入文件。修正后的完整代码如下:

import os
import zstd
import pandas as pd
from io import BytesIO  # 导入BytesIO模块

for ex in examples:
    path = root + "f=" + ex + "/" + date
    data_list = os.listdir(path)  # 重命名变量避免和后续数据变量冲突
    
    for d in data_list:
        zst_datapath = path + "/" + d
        with open(zst_datapath, 'rb') as fh:
            compressed_data = fh.read()
            dctx = zstd.ZstdDecompressor(max_window_size=2147483648)
            decompressed_bytes = dctx.decompress(compressed_data)
            
            # 关键修正:用BytesIO包装字节数据,直接传给read_csv
            df = pd.read_csv(BytesIO(decompressed_bytes))
            # 这里可添加对DataFrame的后续处理逻辑,比如合并、分析等

额外优化提示:

  • 如果单个.zst文件体积很大,不建议一次性读取全部压缩内容,可改用流式解压减少内存占用:
with open(zst_datapath, 'rb') as fh:
    with dctx.stream_reader(fh) as reader:
        df = pd.read_csv(reader)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:05:26