pandas筆記1 --pandas處理mat表格檔案
阿新 • • 發佈:2018-12-26
關於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表格裡的。