如何以最简语法索引pandas.MultiIndex并保留层级名称?
pandas MultiIndex索引保留层级名称的最简写法
当操作pandas的MultiIndex对象时,用方括号单值索引(比如index[0])会返回丢失层级名称的元组。要保留层级名称,最简的语法是用列表形式索引,也就是index[[0]],直接返回包含指定行的MultiIndex子集,自动保留原层级名称,无需手动重建。
修改后的代码示例:
import pandas as pd index = pd.MultiIndex.from_product([[2013, 2014], [1, 2]], names=['year', 'visit']) print(index) print(index[0]) # 返回丢失层级名的元组 print(index[[0]]) # 最简写法,保留层级名称
输出结果:
MultiIndex([(2013, 1), (2013, 2), (2014, 1), (2014, 2)], names=['year', 'visit']) (2013, 1) MultiIndex([(2013, 1)], names=['year', 'visit'])
这个方法的原理是:pandas对MultiIndex使用列表式索引时,会返回原索引的子集,完整保留层级结构和名称,比手动调用pd.MultiIndex.from_tuples重建要简洁高效得多。
内容的提问来源于stack exchange,提问作者LogZ
相关产品推荐
相关产品推荐

