0
假设我有在Matlab多维元素说如何在Matlab中将Multidimensional Arrays导出到MultiIndex Dataframe中?
M=rand(5,4,3)
其中5行代表说,客户的姓氏和4列代表他们的{年龄,体重,活动,幸福水平},而其他3个多矩阵代表多年{1999,2003,2009}。
我试图将其转换为Pandas中的多索引数据框架。可以请别人帮我吗?
假设我有在Matlab多维元素说如何在Matlab中将Multidimensional Arrays导出到MultiIndex Dataframe中?
M=rand(5,4,3)
其中5行代表说,客户的姓氏和4列代表他们的{年龄,体重,活动,幸福水平},而其他3个多矩阵代表多年{1999,2003,2009}。
我试图将其转换为Pandas中的多索引数据框架。可以请别人帮我吗?
我觉得有这样做的没有简单的方法,
我会后我以供日后参考的解决方案。但是,如果有人愿意添加一个非常感谢的答案。但是,如果我在网上找不到简单的解决方案,我会做很多事情。我发布的问题没有人回答过。
在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)
结果是我在这个问题想