选择/重命名/简化多索引数据帧



经过一些分组依据和透视操作后,我生成的数据帧最终得到多级列和索引值。

有人可以举一些关于如何操作这些多值列的例子吗?

例如,列现在如下所示:

>>> result.columns
MultiIndex(levels=[[u'min', u'median', u'mean', u'max', u'std', u'count'], [1, 2, 3, 4, 5]],
           labels=[[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]],
           names=[None, u'Nums'])

有没有办法将列重命名为级别的组合字符串,例如:"1 分钟"、"3 中位数"。

保留功能的 MultiIndex 会更好吗,只是重命名标签?我想找到一种方法来按级别组合("1 分钟"、"3 中位数"(选择列。

此外,现在当我将数据帧导出到 csv 文件时,我将 MultiIndex 列值分为两行(第 1 行 - "min" 行 2 - "1"(,并希望将它们合并为一行。

这个问题有点宽泛,但我想看看有什么选项/功能可以处理这种结果。

感谢任何建议

您可以获取 MultiIndex 的级别值,并使用数组操作将它们相加。

result.columns.get_level_values(1).astype(str) + '-' + result.columns.get_level_values(0)
Index(['1-min', '2-min', '3-min', '4-min', '5-min', '1-median', '2-median',
       '3-median', '4-median', '5-median', '1-mean', '2-mean', '3-mean',
       '4-mean', '5-mean', '1-max', '2-max', '3-max', '4-max', '5-max',
       '1-std', '2-std', '3-std', '4-std', '5-std', '1-count', '2-count',
       '3-count', '4-count', '5-count'],
      dtype='object')

最新更新