先上代码:
import pandas as pd
from scipy.io import loadmat
# 读取 .mat 文件
file_path = 'file.mat' # 替换为您的文件路径
data = loadmat(file_path)
# 提取数据
X = data['X'] # 确保使用正确的变量名
y = data['y']
# 创建 DataFrame
df_X = pd.DataFrame(X)
df_y = pd.DataFrame(y)
# 合并 X 和 y(假设 y 是目标变量)
df = pd.concat([df_X, df_y], axis=1)
# 保存为 CSV 文件
csv_file_path = 'file.csv' # 替换为您想要的输出文件名
df.to_csv(csv_file_path, index=False)
说明:
.mat类型的文件好像有 7.3 和 7.0 两种(或更多)?可以先看一下自己的是什么类型,7.3的用h5py那个包,7.0的用scipy,下面是检查文件是不是 7.3 格式的代码,不是的话可以用上面那段代码。
import h5py
file_path = 'your_file.mat' # 替换为您的文件路径
try:
with h5py.File(file_path, 'r') as f:
print("该文件是 v7.3 格式的 HDF5 文件。")
except OSError:
print("该文件不是 v7.3 格式的 HDF5 文件,可能是 v7.0 格式或其他格式。")
另外,我使用的文件里面的数据是分 x 和 y 的,不分的我没试过。