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)
結果是我在這個問題想