【发布时间】:2019-03-27 13:42:18
【问题描述】:
当使用 MultiIndex 创建 Pandas 数据框时,级别似乎总是被排序:
>>> pd.DataFrame([range(4)], columns=pd.MultiIndex.from_product([["b", "a"], [20, 10]]))
b a
20 10 20 10
0 0 1 2 3
>>> _.columns
MultiIndex(levels=[[u'a', u'b'], [10, 20]],
labels=[[1, 1, 0, 0], [1, 0, 1, 0]])
(注意levels 是如何排序的。)这有保证吗?了解这一点有助于编写健壮的代码(因为我们可以依赖 MultiIndices 的一个简单属性)。
我在文档中找不到任何保证(但这并不意味着它不存在!)。
还有 old examples(从 2015 年开始)表现出不同的行为,但也许 Pandas 现在提供级别顺序保证(就像 Python 3.6 提供字典中键顺序的保证一样) ?
【问题讨论】:
标签: python pandas multi-index