pandas笔记1 --pandas处理mat表格文件

关于Python处理.mat表格文件

参考:
读入mat:
http://www.cnblogs.com/cymwill/p/8331002.html
dataframe常见操作:
https://blog.csdn.net/xtfge0915/article/details/52938740

我们做实验时,生成的数据可能是matlab生成的mat表格文件,而我们用Python做机器学习处理时候,往往需要的是DataFrame文件,因为这样方便做特征标记与区分。

方法1:将mat转为csv,再做处理

其实最简单的就是直接在电脑上新建一个csv文件,把mat表格的全选复制粘贴过来,再人为加上一行标签就可以了。那样就得到了一个我们想要的csv文件。
有了csv文件,那样我们只需要:

import pandas as pd
data = pd.read_csv(r'xxx.csv')#生成的就是DataFrame文件
print("数据的前5行:",data.head())#前五行
print("数据的形状大小:",data.shape)
X = data[[
         "td","newtd"
         ]]
print("X相关:",X.head(),X.shape)
y = data[['y']]#y是第一行的标签,你自己添加的
print("y相关:",y.head(),y.shape)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0,test_size=0.2)#随机划分训练集,测试集
print(X_train.shape,y_train.shape,X_test.shape,y_test.shape)

输出:

数据的前5行:    load1  load2  load3    ...       new2_1        new1_2    new1_1
0      5      3      1    ...     4.609870  3.480000e-19  0.000024
1      5      1      5    ...     4.632195  2.300000e-19  0.000022
2      1      1      5    ...     4.644054  1.850000e-19  0.000021
3      5      3      3    ...     4.649179  1.680000e-19  0.000020
4      3      5      3    ...     4.629969  2.400000e-19  0.000022

[5 rows x 56 columns]
数据的形状大小: (2998, 56)
X相关:              td      newtd
0  2.570000e-09 -19.779360
1  2.090000e-09 -19.986102
2  2.230000e-09 -19.921264
3  2.320000e-09 -19.881699
4  2.230000e-09 -19.921264 (2998, 2)
y相关:               y
0  3.160000e-09
1  2.570000e-09
2  2.660000e-09
3  2.730000e-09
4  2.720000e-09 (2998, 1)
(2398, 2) (2398, 1) (600, 2) (600, 1)

接下来我们愉快的运用模型预测就好了!

方法2:将mat直接转为dataframe,在上面直接添加标签(推荐)

由于这些代码都是在实验室服务器上运行的,就不贴出来结果了。

from scipy.io import loadmat#用于加载mat文件
data_m= loadmat("xxx.mat")#mat-->dict字典。
print(data_m.keys())#其中有很多key,注意找自己数据所在的那个
data_load = data_m["ML_load"]#我需要的是这个,这是一个2998*10的矩阵
data_load = pd.DataFrame(data_load,columns=("load1","load2","load3","load4","load5","load6","load7","load8","load9","load10",))#给每列加上一个名字或者叫特征名,此时data_load就是一个dataframe类型了。
print(data_load.head())#打印该df的前五行
print(data_load.shape)

后面会更新dataframe合并的文章,因为我们可能特征是在多个mat表格里的。

猜你喜欢

转载自blog.csdn.net/ssswill/article/details/84958253