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

如何从单个CSV文件读取多个Polars DataFrame

将单CSV文件中的多数据表转为Polars DataFrame列表

Polars的scan_csv主要适配多文件或单文件单表场景,直接处理单文件多表需要先拆分内容。这里提供简洁的实现方式,无需复杂文本解析:

  • 读取整个CSV文件内容,按空行分割出独立的数据表块
  • 对每个表块用StringIO模拟文件对象,再通过Polars的read_csv解析成DataFrame

代码实现

import polars as pl
from io import StringIO

def split_csv_to_dfs(file_path):
    # 读取文件内容并按空行分割数据表
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    # 过滤空块,处理首尾空行或连续空行的情况
    table_blocks = [block.strip() for block in content.split('\n\n') if block.strip()]
    
    # 逐个解析表块为DataFrame
    df_list = []
    for block in table_blocks:
        df = pl.read_csv(StringIO(block))
        df_list.append(df)
    
    return df_list

# 使用示例
dfs = split_csv_to_dfs('multi_table.csv')
# 查看第一个数据表
print(dfs[0])

注意事项

  • 若存在连续多换行的分隔,split('\n\n')依然有效,后续strip()会清理多余空白
  • 若数据表使用自定义分隔符(如;),可给read_csv添加separator=';'参数
  • 大文件场景下,可改为逐行读取累积表块,避免一次性加载全量内容占用过多内存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:03:11