如何用Python将.mat文件转CSV?已加载数据却不知后续操作
将MAT文件数据转换为Pandas DataFrame并保存为CSV
核心思路
加载MAT文件后得到的字典中,__header__、__version__、__globals__属于文件元数据,无需纳入DataFrame。其余字段对应的Matlab格式数组大多为(N,1)的二维结构,需要先转为一维数组才能适配Pandas的列结构。
完整代码实现
from scipy.io import loadmat import pandas as pd # 加载MAT数据 data = loadmat(r"C:\Users\ansha\Downloads\HTS_C1_SN14_13.11.2019_02.mat") # 过滤元数据,保留实际数据字段 filtered_data = {key: value for key in data if not key.startswith('__')} # 处理数组形状:将Matlab风格的二维数组转为一维 processed_data = {} for key, value in filtered_data.items(): if value.ndim == 2 and (value.shape[0] == 1 or value.shape[1] == 1): processed_data[key] = value.flatten() else: processed_data[key] = value # 创建DataFrame df = pd.DataFrame(processed_data) # 保存为CSV文件(可自定义路径) df.to_csv(r"C:\Users\ansha\Downloads\mat_converted_data.csv", index=False)
注意事项
- 若部分字段数组长度不一致,创建DataFrame会报错,此时需检查数据对应关系(比如是否按试次分组),调整数据结构后再处理。
- 对于非
(N,1)的多维数组,需根据数据含义决定处理方式(如展开为一维、拆分存储),避免CSV无法兼容复杂结构。
内容的提问来源于stack exchange,提问作者Ansh Bharadwaj
相关产品推荐
相关产品推荐

