Pandas multiindex数据帧选择数据

ani*_*bey 2 python dataframe pandas

下面给出这个数据帧,
有没有一种方法来检索其列开始值> = 20000和停止值<= 40000?其中start和stop是列的名称(而不是值).

多索引数据框

jez*_*ael 5

我想你可以用get_level_values+ astypeint(如果需要),创建mask&和最后一个选择的loc:

mask1 = df.columns.get_level_values('start').astype(int) >= 20000
mask2 = df.columns.get_level_values('stop').astype(int) <= 40000

mask = mask1 & mask2
df = df.loc[:, mask]
print (df)
Run Code Online (Sandbox Code Playgroud)