python pandas - 基于列名构建子集
这是我的多重索引数据框:
A B
Net Upper Lower Mid Zsore
Answer option
More than once a day 0% 0.22% -0.12% 2 65
Once a day 0% 0.32% -0.19% 3 45
Several times a week 2% 2.45% 1.10% 4 78
Once a week 1% 1.63% -0.40% 6 65
我想根据第二层的列名来创建一个子集(没什么复杂的),只保留“Net, Upper, Zscore”这几列。
Net Upper Zsore
Answer option
More than once a day 0% 0.22% 65
Once a day 0% 0.32% 45
Several times a week 2% 2.45% 78
Once a week 1% 1.63% 65
我尝试过的方法失败了,我想这可能是因为我不知道怎么处理这两层的列?
df = df[[u'Net',u'Upper',u'Zsore']]
1 个回答
2
也许可以这样做:
>>> j = df.columns.get_level_values(1).isin(['Net', 'Upper', 'Zsore'])
>>> df.loc[:,j]
A B
Net Upper Zsore
Answer option
More than once a day 0% 0.22% 65
Once a day 0% 0.32% 45
Several times a week 2% 2.45% 78
Once a week 1% 1.63% 65