Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 选择/重命名/简化多索引数据帧_Pandas - Fatal编程技术网

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

Pandas 选择/重命名/简化多索引数据帧,pandas,Pandas,在执行了一些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

在执行了一些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”)来选择列

另外,现在当我将dataframe导出到csv文件时,我将多索引列值分为两行(第1行-“min”第2行-“1”),并希望将它们合并为一行

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


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

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')
结果[[(1,'min'),(3,'median')]]
应该可以做到这一点