Convert mat file to pandas dataframe problem

瘦欲@ 提交于 2019-12-24 06:54:26

问题


Hello I'm stuck on getting good conversion of a matrix of matlab to pandas dataframe. I converted it but I've got one row in which I've list of list. These list of list are normaly my rows.

import pandas as pd
import numpy as np
from scipy.io.matlab import mio
Data_mat = mio.loadmat('senet50-ferplus-logits.mat')

my Data_mat.keys() gives me this output:

dict_keys(['__header__', '__version__', '__globals__', 'images', 'wavLogits'])

I'd like to convert images and wavLogits to data frame. By looking to this post I applied the solution.

cardio_df = pd.DataFrame(np.hstack((Data_mat['images'], Data_mat['wavLogits'])))

And the output is

How to get the df in good format?

[UPDATE] Data_mat["images"] has

array([[(array([[array(['A.J._Buckley/test/Y8hIVOBuels_0000001.wav'], dtype='<U41'),
        array(['A.J._Buckley/test/Y8hIVOBuels_0000002.wav'], dtype='<U41'),
        array(['A.J._Buckley/test/Y8hIVOBuels_0000003.wav'], dtype='<U41'),
        ...,
        array(['Zulay_Henao/train/s4R4hvqrhFw_0000007.wav'], dtype='<U41'),
        array(['Zulay_Henao/train/s4R4hvqrhFw_0000008.wav'], dtype='<U41'),
        array(['Zulay_Henao/train/s4R4hvqrhFw_0000009.wav'], dtype='<U41')]],
      dtype=object), array([[     1,      2,      3, ..., 153484, 153485, 153486]], dtype=int32), array([[   1,    1,    1, ..., 1251, 1251, 1251]], dtype=uint16), array([[array(['Y8hIVOBuels'], dtype='<U11'),
        array(['Y8hIVOBuels'], dtype='<U11'),
        array(['Y8hIVOBuels'], dtype='<U11'), ...,
        array(['s4R4hvqrhFw'], dtype='<U11'),
        array(['s4R4hvqrhFw'], dtype='<U11'),
        array(['s4R4hvqrhFw'], dtype='<U11')]], dtype=object), array([[1, 2, 3, ..., 7, 8, 9]], dtype=uint8), array([[array(['A.J._Buckley/1.6/Y8hIVOBuels/1/01.jpg'], dtype='<U37')],
       [array(['A.J._Buckley/1.6/Y8hIVOBuels/1/02.jpg'], dtype='<U37')],
       [array(['A.J._Buckley/1.6/Y8hIVOBuels/1/03.jpg'], dtype='<U37')],
       ...,
       [array(['Zulay_Henao/1.6/s4R4hvqrhFw/9/16.jpg'], dtype='<U36')],
       [array(['Zulay_Henao/1.6/s4R4hvqrhFw/9/17.jpg'], dtype='<U36')],
       [array(['Zulay_Henao/1.6/s4R4hvqrhFw/9/18.jpg'], dtype='<U36')]],
      dtype=object), array([[1.00000e+00],
       [1.00000e+00],
       [1.00000e+00],
       ...,
       [1.53486e+05],
       [1.53486e+05],
       [1.53486e+05]], dtype=float32), array([[3, 3, 3, ..., 1, 1, 1]], dtype=uint8))]],
      dtype=[('name', 'O'), ('id', 'O'), ('sp', 'O'), ('video', 'O'), ('track', 'O'), ('denseFrames', 'O'), ('denseFramesWavIds', 'O'), ('set', 'O')])

来源:https://stackoverflow.com/questions/59267404/convert-mat-file-to-pandas-dataframe-problem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!