首页 > 解决方案 > Python:从 DataFrame 多索引中删除列

问题描述

我有以下数据框:

data_raw (201 x 600)
Column Level 0: ROE_1 ROE_2 Test_EQ_1
Column Level 1: A B C D E F G H I J .... (200 items)
Index Level 0: 1 2 3 4... (201 items)

我正在尝试删除该Test_EQ_1列。

使用后:

data_raw = data_raw.drop("Test_EQ_1", axis=1, level=0)

数据框的尺寸减小到 201x400(如预期的那样)。所有带有的列Test_EQ_1都消失了(如预期的那样)。

但是,当我使用以下内容时:

data_raw.columns.levels[0]

我得到:

Index(['ROE_1', 'ROE_2', **'Test_EQ_1'**], dtype='object', name='Variable')

这会为我的代码的后面部分产生问题,就像Test_EQ_1从数据框中消失的那样,但在我检查列时仍然存在。

有没有办法“完全”删除Test_EQ_1

标签: pythonpandasdataframemulti-index

解决方案


找到答案:重新定义列:

    multi = data_raw.columns.to_list()
    data_raw.columns = pd.MultiIndex.from_tuples(multi)

推荐阅读