Pandas DataFrame MultiIndex列/索引级别条目在切片后保留。如何删除它们?

时间:2017-08-30 18:17:12

标签: python python-3.x pandas dataframe indexing

假设我采用以下DataFrame列的9列MultiIndex小节,如下所示:

import pandas as pd
import numpy as np
columns=pd.MultiIndex.from_product([('a','b','c'),('x','y','z')])
df = pd.DataFrame(np.random.rand(10,9), columns=columns)
dfs = df[['a','b']]
print(dfs.columns, '\n', ('c' in dfs))

print语句产生

True
MultiIndex(levels=[['a','b','c'],['x','y','z']], 
    labels=[[0,0,0,1,1,1],[0,1,2,0,1,2]])

...所以在接受这个小节后,' c'仍显示在列MultiIndex对象的第一级中,调用'c' in dfs将产生True。但是,labels对象的MultiIndex属性已更改。

MultiIndex编辑DataFrame像这样被切片时,如何让pandas 删除未使用的关卡条目?我在遍历每列的函数之间传递DataFrame,并且希望阻止迭代空列。

更新:最新的pandas更新解决了一个更普遍的问题,但这个更具体的问题仍然存在于最新版本中。

0 个答案:

没有答案