我第一次了解pandas
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)],
)
您的两个代码给出相同的对象(请注意,
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]])