如何使用 Pandas 和 Python 为现有 pd.DataFrame 对象创建 pd.MultiIndex 3?
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.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'])
我正在为现有 pd.DataFrame
.
pd.read_table(path/to/file, index_col=[0,1])
的东西
我经常遇到具有以下格式的 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'])