Python学习笔记:删除多级索引

Python 中使用 stack/unstack/melt/pivot_talbe 等函数进行聚合之后,计算得到的结果具有多层索引。

一般情况下可以通过额外指定 columns 或者通过 reset_index() 可重置。

一、举个例子

import pandas as pd
import numpy as np

# 创建数据框
df = pd.DataFrame(np.arange(9).reshape(3,3),
                  columns=[['x','x','y'],['x1','x2','y1']],
                  index=[['A','A','B'],['a','a','b']])

# 索引
df.index
'''
MultiIndex([('A', 'a'),
            ('A', 'a'),
            ('B', 'b')],
           )
'''

# 列名
df.columns
'''
MultiIndex([('x', 'x1'),
            ('x', 'x2'),
            ('y', 'y1')],
           )
'''

二、降低索引级别

# 合并多级索引
df.columns = ["_".join(x) for x in df.columns.ravel()]

Pandas.Series.ravel() 函数将展平的基础数据作为 ndarray 返回。

三、删除索引

# 删除
df.columns = df.columns.droplevel(1) # 删除第2层索引
df.columns = df.columns.droplevel(0) # 删除最外层索引

参考链接:Python pandas多层次索引降级为单层索引

posted @ 2022-11-20 21:11  Hider1214  阅读(1513)  评论(0)    收藏  举报