pandas如何按位置删除多重索引列?

各位大神好,我是初学pandas小白,数据如图是个多重索引数据:

我想用DataFrame.drop()删除倒数第2个券商的所有数据,按照columns标签删除就是:

df.drop(columns="南京证券",level=0, inplace = True)

但是我想按位置删除,比如删除倒数第2个券商(南京证券)的所有数据,写了一段复杂的代码:

 

import pandas as pd

df = pd.read_excel(f"{work_dir}/券商简单数据.xlsx")

lst1 = []
    for x in df.columns:
    lst1.append(x[0])
    ser = pd.Series(lst1)
    ser.drop_duplicates(inplace = True)

df_new= df.drop(columns=ser.iloc[-2],level=0)

求助各位大神,有没有更简单的方法实现?

pd.iloc[]

不行,level=0的columns标签都是重复三次出现的,所以直接.iloc[-2],还是最后的“中金公司”标签

刚有大神回复了这个方法:

先用df.columns.levels获取level=0的列,再从获取的列中选择需要删除的。

df.drop(columns=df.columns.levels[0][-2]) 

但是我刚试过了,用df.columns.levels获取level=0的列得到的是重新排过顺序得列表,还是没法实现

cols = [3,7,10,12,14,16,18,20,22]
df.drop(df.columns[cols],axis=1,inplace=True)

删除指定的列