Pandas MultiIndex 不返回级别和标签

问题描述 投票:0回答:1

我第一次了解

MultiIndex()
。这里我有两个列表,我想使用
MultiIndex()
函数组合它们。我期望的结果应该是
levels
labels
但这里的情况并非如此。

这是我的代码:

import numpy as np
import pandas as pd

inside = ['a', 'a', 'a', 'b', 'b', 'b']
outside = [1,2,3,1,2,3]
zipped = list(zip(inside, outside))
hier_zipped = pd.MultiIndex.from_tuples(zipped)

hier_zipped

预期结果:

MultiIndex(levels = [['a','b'],[1,2,3]], 
           labels = [[0,0,0,1,1,1],[0,1,2,0,1,2]]
           )

实际结果:

MultiIndex([('a', 1),
            ('a', 2),
            ('a', 3),
            ('b', 1),
            ('b', 2),
            ('b', 3)],
           )
python pandas dataframe jupyter-notebook multi-index
1个回答
0
投票

您的两个代码给出相同的对象(请注意,

labels
应该是
codes
),MultiIndex的表示不显示级别/代码:

pd.MultiIndex(levels=[['a','b'],[1,2,3]], codes=[[0,0,0,1,1,1],[0,1,2,0,1,2]])

输出:

MultiIndex([('a', 1),
            ('a', 2),
            ('a', 3),
            ('b', 1),
            ('b', 2),
            ('b', 3)],
           )

如果您想要级别和代码,请使用:

hier_zipped.levels
# FrozenList([['a', 'b'], [1, 2, 3]]),

hier_zipped.codes
# FrozenList([[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]])
© www.soinside.com 2019 - 2024. All rights reserved.