Преобразование matlab.object в pandas фрейм данных - PullRequest
0 голосов
/ 26 мая 2020

Я использовал этот код для запуска сценария matlab внутри python, сценарий представляет собой файл 'matlab_to_ python .m' и имеет 1 выход: таблица matlab с именем 'matlab_table'.

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

mytable = eng.matlab_to_python()

, когда я запускаю это, тип mytable:

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

Я хочу видеть эту таблицу как pandas фрейм данных в python, любые идеи о том, как это можно сделать ?

Спасибо!

1 Ответ

0 голосов
/ 26 мая 2020

Хотя кажется, что перенос таблицы непосредственно в Python из MATLAB еще не поддерживается , вы можете использовать преобразования символов, чтобы компенсировать разницу.

Например, вы может преобразовать таблицу в формат json (1xN char), который затем может быть преобразован в DataFrame с помощью функции pandas.DataFrame.read_json.

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 файл, который затем можно прочитать в Python через pandas.DataFrame.read_csv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...