如何将 Matlab 中的多维数组导出到 Python 中的 MultiIndex Dataframe?
How to export Multidimensional Arrays in Matlab to MultiIndex Dataframe in Python?
假设我在 Matlab 中有一个多维元素说
M=rand(5,4,3)
其中 5 行代表客户的姓氏,4 列代表他们的{年龄、体重、活动、幸福水平},而其他 3 个多矩阵代表年份 {1999,2003,2009 }.
我正在尝试将其转换为 Pandas 中的多索引数据框。可以请有人帮助我吗?
我认为没有简单的方法可以做到,
我会post我的解决方案供以后参考。但是,如果有人乐于添加答案,我们将不胜感激。但是,如果我没有在网上找到简单的解决方案,我会做很多事情。我 posted 之前没有人回答过这个问题。
在 Matlab 中,我已经为每个维度 (:,:,i)
、i=1,2,3
创建了一个 excel 文件,如下所示:
for i=1:3
xlswrite([num2str(i) '.xlsx'],M(:,:,i))
end
因此,我将三个 excel 个文件保存为 1.xlsx,依此类推。
现在,我访问 python 中的相同目录,并编写了以下代码
import pandas as pd
# Import the excel file and call it xls_file
df = pd.read_excel('You_working_directory/1.xlsx', header=None)
# Creating Multi indexing for both columns and rows
col_name=['age', 'weight', 'activities', 'happiness level']
row_name=['Rami Chehab','Aya Ghalayini','Bassel Dajani','Mohammad Saab','Huthaifa Abou Hammad']
arrays1 = [['Paid Individuals']*5,row_name]
arrays2 = [['1999']*4,col_name]
rows1 = pd.MultiIndex.from_arrays(arrays1, names=['Category', 'Names'])
col1= pd.MultiIndex.from_arrays(arrays2, names=['Year', 'Activity'])
df1 = pd.DataFrame(df.values, columns=col1,index= rows1)
# Creating the multi-dimenstional variable which is year in our case
Year=['2003','2009']
for ii in range(0,2):
df = pd.read_excel("You_working_directory" + str(ii+2)+'.xlsx', header=None)
arrays2 = [[Year[ii]]*4,col_name]
col2= pd.MultiIndex.from_arrays(arrays2, names=['Year', 'Activity'])
df = pd.DataFrame(df.values, columns=col2,index= rows1)
# Merge data from the row index
df1 = pd.concat([df1, df], axis=1)
题目如我所愿
假设我在 Matlab 中有一个多维元素说
M=rand(5,4,3)
其中 5 行代表客户的姓氏,4 列代表他们的{年龄、体重、活动、幸福水平},而其他 3 个多矩阵代表年份 {1999,2003,2009 }.
我正在尝试将其转换为 Pandas 中的多索引数据框。可以请有人帮助我吗?
我认为没有简单的方法可以做到,
我会post我的解决方案供以后参考。但是,如果有人乐于添加答案,我们将不胜感激。但是,如果我没有在网上找到简单的解决方案,我会做很多事情。我 posted 之前没有人回答过这个问题。
在 Matlab 中,我已经为每个维度 (:,:,i)
、i=1,2,3
创建了一个 excel 文件,如下所示:
for i=1:3
xlswrite([num2str(i) '.xlsx'],M(:,:,i))
end
因此,我将三个 excel 个文件保存为 1.xlsx,依此类推。
现在,我访问 python 中的相同目录,并编写了以下代码
import pandas as pd
# Import the excel file and call it xls_file
df = pd.read_excel('You_working_directory/1.xlsx', header=None)
# Creating Multi indexing for both columns and rows
col_name=['age', 'weight', 'activities', 'happiness level']
row_name=['Rami Chehab','Aya Ghalayini','Bassel Dajani','Mohammad Saab','Huthaifa Abou Hammad']
arrays1 = [['Paid Individuals']*5,row_name]
arrays2 = [['1999']*4,col_name]
rows1 = pd.MultiIndex.from_arrays(arrays1, names=['Category', 'Names'])
col1= pd.MultiIndex.from_arrays(arrays2, names=['Year', 'Activity'])
df1 = pd.DataFrame(df.values, columns=col1,index= rows1)
# Creating the multi-dimenstional variable which is year in our case
Year=['2003','2009']
for ii in range(0,2):
df = pd.read_excel("You_working_directory" + str(ii+2)+'.xlsx', header=None)
arrays2 = [[Year[ii]]*4,col_name]
col2= pd.MultiIndex.from_arrays(arrays2, names=['Year', 'Activity'])
df = pd.DataFrame(df.values, columns=col2,index= rows1)
# Merge data from the row index
df1 = pd.concat([df1, df], axis=1)
题目如我所愿