【发布时间】:2021-01-11 14:14:07
【问题描述】:
我有一个包含嵌套结构的 MATLAB 文件,如下图所示。当我打开文件时,它显示 (1,616) struct.... 616 个字段中的每一个在另一个 (1,1) 结构中都有数据。每个 (1,1) 结构都有 6 个形状参数值 (1,789)。
d = sio.loadmat('file_name.mat')
del d['__header__']
del d['__version__']
del d['__globals__']
d
使用 python 加载数据时,显示为带有一个键(循环)的字典,其中 ndarray 作为值。我想将每个具有 6 个参数的结构(总共 616 个)转换为一个数据帧,并将所有 616 个数据帧存储在一个字典中,以便以后可以将该字典转换为 Excel 工作簿。我尝试使用以下代码为一个结构做,并得到如下代码所示的输出(根据需要)
list1 = d['cycle']['data'].item(0).item(0)
df1 = pd.DataFrame(np.concatenate(list1))
df1 = df1.transpose()
df1.columns = ["Voltage","Current", "Temperature","Current_charger","Voltage_charger","Time"]
df1
Voltage Current Temperature Current_charger Voltage_charger Time
0 3.873017 -0.001201 24.655358 0.000 0.003 0.000
1 3.479394 -4.030268 24.666480 -4.036 1.570 2.532
2 4.000588 1.512731 24.675394 1.500 4.726 5.500
3 4.012395 1.509063 24.693865 1.500 4.742 8.344
4 4.019708 1.511318 24.705069 1.500 4.753 11.125
... ... ... ... ... ... ...
784 4.190822 -0.003391 24.539397 0.000 0.003 7525.782
785 4.191299 -0.000942 24.532498 0.000 0.003 7543.797
786 4.191388 -0.000351 24.518673 0.000 0.003 7561.750
787 4.191453 -0.001856 24.514363 0.000 0.003 7579.813
788 4.191078 -0.002892 24.507040 0.000 0.003 7597.875
789 rows × 6 columns
我已经为一个结构完成了它。但我无法编写代码使其在所有 616 个周期中重复。请帮我解决这个问题。
谢谢
【问题讨论】:
标签: python excel matlab dataframe struct