我正在为现有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
答案 0 :(得分:1)
这个怎么样..
DF_concat.set_index([DF_concat.index, 'cluster'])