Skip to main content
 首页 » 编程设计

python之如何防止 pandas DataFrame 在子集化后保留完整索引

2025年05月04日21cmt

<分区>

我有以下 DataFrame 和 MultiIndex。

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

df2.loc[['A', 'C']].copy().index 
[Out]: MultiIndex(levels=[['A', 'B', 'C'], ['a', 'b', 'c', 'd', 'e']], 
       labels=[[0, 0, 2], [0, 1, 4]]) 

这种行为背后的基本原理是什么?如何防止这种情况发生?我希望新索引仅包含 [['A', 'C'], ['a', 'b', 'e']。