从.mat文件创建了ndarray,但是如何格式化数据帧?

2024-04-19 04:35:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将MATLAB.mat文件中的数据加载到python中。.mat文件有许多单元格,每个单元格中都有一个结构,其中包含几个命名字段:

samp = 1x2 cell array
{1×1 struct}    {1×1 struct}

samp{1}.buttonID = 3
samp{1}.buttonName = 'name3'

我已经使用scipy.io.loadmat()将.mat文件加载到python中,从中我得到了这个ndarray对象:

In [112]: data
Out[113]: 
array([[array([[(array([[3]], dtype=uint8), array(['name3'], dtype='<U10'))]],
      dtype=[('buttonID', 'O'), ('buttonName', 'O')]),
        array([[(array([[1]], dtype=uint8), array(['name1'], dtype='<U6'))]],
      dtype=[('buttonID', 'O'), ('buttonName', 'O')])]], dtype=object)

我读过一些关于如何将ndarray转换为pandas数据帧的文章,但我的困惑是python将字段名('buttonID'和'buttonName')与dtype一起存储。如何将这些名称传递到DataFrame()以正确存储数据?你知道吗

目标是:

'' 'buttonID' 'buttonName'
0   3         'name3'
1   1         'name1'

Tags: 文件数据结构arraystructndarraydtypematlab