将matlab.object转换为熊猫数据框

时间:2020-05-26 15:42:06

标签: python pandas matlab dataframe

我已使用此代码在python中运行matlab脚本,该脚本是文件'matlab_to_python.m',它具有1个输出:一个名为'matlab_table'的matlab表。

import matlab.engine
eng = matlab.engine.start_matlab()

mytable = eng.matlab_to_python()

运行此命令时,mytable的类型为:

In [28]: mytable
Out[28]: <matlab.object at 0x1ebe007fb70>

我希望能够将此表视为python中的pandas数据框,对如何完成此操作有任何想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

尽管似乎还没有supported从MATLAB直接将表转移到Python中,但是您可以利用char转换来弥补差异。

例如,您可以将表转换为json格式(1xN字符),然后可以使用pandas.DataFrame.read_json函数将其转换为DataFrame。

import matlab.engine
import pandas as pd
eng = matlab.engine.start_matlab()

# keep the table in MATLAB
eng.workspace['mytable'] = eng.matlab_to_python()

# pass a string representation to Python
jsontable = eng.eval('jsonencode(mytable)')

# convert back into a table
mytable = pd.read(jsontable)

另一种方法可能是从matlab写入csv文件,然后您可以通过pandas.DataFrame.read_csv

将其读入Python