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

Pandas初学者求助:如何从CSV读取矩阵集合至多个DataFrame

解决Pandas读取矩阵集合CSV为多个DataFrame的问题

作为刚接触Pandas的新手,碰到这种非标准CSV格式的问题确实很头疼——毕竟pd.read_csv()是为规范的行列式CSV设计的,矩阵集合这种带{}包裹、分块的格式自然会出问题。咱们一步步来搞定它:

1. 先明确你的CSV格式

首先得确认你的CSV文件结构,大概率是类似这种(每个矩阵用{}包裹,内部是每行一组数据,矩阵间可能有空行):

{
1,2,3
4,5,6
}
{
7,8,9
10,11,12
}

如果是这种结构,咱们可以绕开read_csv,先手动读取文件内容再分割处理。

2. 手动读取+分割矩阵转DataFrame

用Python内置的文件读取先把内容读出来,再拆分出每个矩阵,最后转换成DataFrame:

import pandas as pd

# 读取目标CSV文件
with open('你的文件路径.csv', 'r', encoding='utf-8') as f:
    file_content = f.read()

# 分割出每个矩阵的内容,过滤掉空内容和多余符号
raw_matrices = [mat.strip() for mat in file_content.split('{') if mat.strip() and '}' in mat]
clean_matrices = [mat.replace('}', '').strip() for mat in raw_matrices]

# 把每个矩阵转换成DataFrame,存入列表
df_collection = []
for mat in clean_matrices:
    # 按换行拆分每行,再按逗号拆分每个元素
    matrix_rows = [row.strip().split(',') for row in mat.split('\n') if row.strip()]
    # 转成DataFrame,你可以手动指定列名,比如columns=['列1', '列2', '列3']
    single_df = pd.DataFrame(matrix_rows)
    df_collection.append(single_df)

3. 适配不同格式变种

如果你的矩阵分隔符不是{},而是其他标识(比如矩阵间用===分隔),只需要调整分割规则就行——把split('{')换成split('==='),再做对应过滤处理。

4. 解释下之前read_csv报错的原因

你用read_csv报错,本质是因为这个文件不符合标准CSV的行列规范:{}属于非数据行,Pandas无法识别正确的列数,自然抛出错误;设置nrows=2时,只读取了前两行,其中的{被当成了数据内容,这显然不是你想要的结果。

验证结果

运行完代码后,df_collection列表里就存着每个矩阵对应的DataFrame了,你可以通过df_collection[0]、df_collection[1]来访问不同的矩阵数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:48:11