微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从MultiIndex df中删除列

如何解决从MultiIndex df中删除列

如果这个问题再次出现,我深表歉意,但我找不到先前答案的有效解决方案。

问题:我想从多索引数据框中删除一列。有问题的列显示为级别。我特别希望删除整个列“ typeE”

方法,我尝试使用.drop()删除它,但必须缺少某些规范(df.drop(['typeE'],axis = 1,level = 0))>

这是df的结构。我希望删除列typeE(全部)

[Input]    df.columns
[Output]   MultiIndex(levels=[['typeA','typeB','typeC','typeD','typeE','typeF'],['stock','bond','cash']],labels=[[0,1,2,3,4,5,6],[1,2]])

[Input]    df.index
[Output]   DatetimeIndex(['2005-06-30','2005-07-01','2005-07-02'],dtype='datetime64[ns]',length=3,freq=None)

[Input]    df
[Output]

              typeA      typeB       typeC       typeD       typeE        typeF
              bond       stock        bond       cash        stock        cash
2005-06-30  0.000132    0.358719    0.018888    0.132677    0.034894    0.099345
2005-07-01  0.000167    0.353419    0.018719    0.139574    0.018923    0.024892
2005-07-02  0.002300    0.357893    0.011425    0.130605    0.037289    0.028304        

解决方法

您可以尝试drop

df = df.drop(('typeE','stock'),1)
df
Out[14]: 
index          typeA     typeB     typeC     typeD     typeF
0               bond     stock      bond      cash      cash
2005-06-30  0.000132  0.358719  0.018888  0.132677  0.099345
2005-07-01  0.000167  0.353419  0.018719  0.139574  0.024892
2005-07-02  0.002300  0.357893  0.011425  0.130605  0.028304

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。