Конвертировать Mat файл в Pandas Dataframe независимо от имен переменных Mat - PullRequest
0 голосов
/ 26 сентября 2019

Эта тема обсуждалась по этой ссылке и ссылке .

Однако для обоих этих вопросов и ответов предполагается, что я знаю имяпеременной в моем файле мата.Есть ли способ преобразования файла mat в фрейм данных panda без знания имен переменных?Другими словами, каждый коврик может иметь разные переменные, но все же я хотел бы преобразовать их в кадр данных, захватив имя переменной в виде столбцов, а данные переменной - в виде строк.

Мой подход на этом этапе выглядит примерно так:

    from scipy.io import loadmat
    import numpy as np
    import pandas as pd
    import scipy

    D = loadmat("09_07_1913_44_15_workspace.mat")
    print(D.keys())
    print("------------------")
    #print(D['As'])

    df = pd.DataFrame(D.keys()) # I get each key name and create a column name


    for item in D.keys():
        if not any(value in item for value in ("__header__", "__globals__","__version__")):
            #print(item)
            #print(D[item])
            #print("-----")
            matrix = D[item]
            #print(matrix.flatten()) #We can also use the Flatten method to convert a matrix to 1-d array
            # Alternative to flatten: Reshape
            # print(matrix.reshape(9,1))#Here -1 says as many columns as needed and 1 row
            # print(matrix.reshape(1,-1))#If we provide only 1 value Reshape would return a 1-d array of that length
            vars()[item] = D[item].flatten()

            #Sudo Code Idea: for each item, I append to the dataframe
            #modDfObj2 = df.append({'[item]': D[item]} , ignore_index=True)

Примечание 1. Причина, по которой я использую flatten, заключается в том, что после этого я передам эти переменные некоторым алгоритмам ML;

...