2016-11-21 53 views
0

對於現有的pd.DataFrame,我正在尋找相當於pd.read_table(path/to/file, index_col=[0,1])的東西。如何使用Pandas和Python 3爲現有的pd.DataFrame對象創建pd.MultiIndex?

我經常遇到pd.DataFrames具有以下格式:

# Index Data 
iters = 3*[1] + 3*[2] + 3*[3] 
clusters = 3*[1,2,3] 

# Recreate DataFrame 
DF_A = pd.DataFrame([iters, clusters], index = ["iteration", "cluster"]).T 
DF_B = pd.DataFrame(np.random.RandomState(0).normal(size=(100,9)), index = ["attr_%d"%_ for _ in range(100)]).T 
DF_concat = pd.concat([DF_A, DF_B], axis=1).set_index("iteration", drop=True) 
DF_concat.head() 

enter image description here

如果我裝到這些Python,我只想做index_col=[0,1]就像我上面描述的,但我怎麼能轉換prexisting pd.DataFramepd.Index轉換爲pd.MultiIndex所以iteration是外層索引級別,cluster是內層索引級別?

我嘗試了以下,但任務搞砸了。應該只有3每次迭代的簡單的例子,我做了:

DF_B.index = pd.MultiIndex(levels=[DF_concat["cluster"].index.tolist(), DF_concat["cluster"].tolist()], labels=[DF_concat["cluster"].index.tolist(), DF_concat["cluster"].tolist()], names=["iteration", "cluster"]) 
DF_B 

enter image description here

回答

1

這個怎麼樣..

DF_concat.set_index([DF_concat.index, 'cluster']) 
+0

我不知道你能叫的指數,而你」重新設置它。謝謝! –

相關問題