如何删除行并重命名 multiindex table

How to remove row and rename multiindex table

我有如下所示的多索引数据框,我想删除上面的行 'A'(比如向上移动数据框)

metric data data
        F    K
        C    B
 A      2    3
 B      4    5
 C      6    7
 D      8    9

期望的输出

ALIAS  data data
metric  F    K
 A      2    3
 B      4    5
 C      6    7
 D      8    9

我查看了多个 post,但找不到更接近于创造预期结果的东西。如何获得所需的输出?

https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html

让我们尝试DataFrame.droplevel to remove level 2 from the columns, and DataFrame.rename_axis更新列轴名称:

df = df.droplevel(level=2, axis=1).rename_axis(['ALIAS', 'metric'], axis=1)

或者用索引等价的方法Index.droplevel and Index.rename:

df.columns = df.columns.droplevel(2).rename(['ALIAS', 'metric'])

df:

ALIAS  data   
metric    F  K
A         2  3
B         4  5
C         6  7
D         8  9

设置:

import numpy as np
import pandas as pd

df = pd.DataFrame(
    np.arange(2, 10).reshape(-1, 2),
    index=list('ABCD'),
    columns=pd.MultiIndex.from_arrays([
        ['data', 'data'],
        ['F', 'K'],
        ['C', 'B']
    ], names=['metric', None, None])
)

df:

metric data   
          F  K
          C  B
A         2  3
B         4  5
C         6  7
D         8  9