Python 如何防止数据帧在子集后保留完整索引?

Python 如何防止数据帧在子集后保留完整索引?,python,pandas,Python,Pandas,我有以下带有多索引的DataFrame df2 = pd.DataFrame({'var1': np.arange(5)}, index=pd.MultiIndex.from_tuples([('A', 'a'), ('A', 'b'), ('B', 'c'), ('B', 'd'), ('C', 'e')])) [Out]: var1 A a 0 b 1 B c 2 d 3 C e 4 如果我将其子集,它将保留完整索引(即使我使用

我有以下带有多索引的
DataFrame

df2 = pd.DataFrame({'var1': np.arange(5)}, index=pd.MultiIndex.from_tuples([('A', 'a'), ('A', 'b'), ('B', 'c'), ('B', 'd'), ('C', 'e')]))
[Out]:
       var1
A   a   0
    b   1
B   c   2
    d   3
C   e   4
如果我将其子集,它将保留完整索引(即使我使用
.copy()

这种行为背后的理由是什么?如何防止这种情况发生?我希望新的索引只包括
[['A',C'],['A',b',e']

使用

输出:

MultiIndex(levels=[['A', 'C'], ['a', 'b', 'e']],
           labels=[[0, 0, 1], [0, 1, 2]])
使用

输出:

MultiIndex(levels=[['A', 'C'], ['a', 'b', 'e']],
           labels=[[0, 0, 1], [0, 1, 2]])

相关,尽管略有不同IMO:Related,尽管略有不同IMO:As-pandas 0.20.0好的,所以旧解决方案的语法完全错误。这就是我在手机上尝试回答so帖子而没有先测试它的原因。谢谢。从pandas 0.20.0好的,所以旧解决方案的语法完全错误。这就是我在没有测试的情况下尝试在手机上回复SO帖子的结果。谢谢。
MultiIndex(levels=[['A', 'C'], ['a', 'b', 'e']],
           labels=[[0, 0, 1], [0, 1, 2]])