在一些groupby和pivot操作之后,我得到的数据帧最终会出现多级列和索引值。
有人可以举例说明如何操作这些多值列吗?
例如,以下是列现在的样子:
>>> 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-min”,“3-median”。
为功能保留MultiIndex会更好吗,只需重命名标签? 我想找到一种方法来通过组合水平选择列(“1-min”,“3-median”)。
此外,现在当我将数据框导出到csv文件时,我将MultiIndex列值分为两行(第1行“min”第2行“1”),并希望将它们合并为一行。
这个问题有点宽泛,但我想知道哪些选项/功能可以用来处理这种结果。
任何建议赞赏
答案 0 :(得分:0)
您可以获取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')