簡體   English   中英

如何使用Pandas和Python 3為現有的pd.DataFrame對象創建pd.MultiIndex?

[英]How to create pd.MultiIndex for existing pd.DataFrame object, using Pandas and Python 3?

我正在為現有的pd.DataFrame尋找與pd.read_table(path/to/file, index_col=[0,1]) pd.DataFrame

我經常遇到具有以下格式的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()

在此處輸入圖片說明

如果將它們加載到Python ,我將像上面描述的那樣執行index_col=[0,1] ,但是如何將現有的pd.DataFrame pd.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

在此處輸入圖片說明

這個怎么樣..

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM