假设我采用以下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更新解决了一个更普遍的问题,但这个更具体的问题仍然存在于最新版本中。