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]])