Skip to main content
 首页 » 编程设计

python之Pandas Multiindex 从给定级别选择列列表

2025年05月04日10telwanggs

如果我像这样制作一个多索引列数据框:

iterables = [['bar', 'baz', 'foo', 'qux'], ['one', 'two']] 
index = pd.MultiIndex.from_product(iterables, names=['first', 'second']) 
df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index) 
 
 
first        bar                 baz                 foo                 qux  \ 
second       one       two       one       two       one       two       one    
A      -0.119687 -0.518318  0.113920 -1.028505  1.106375 -1.020139 -0.039300    
B       0.123480 -2.091120  0.464597 -0.147211 -0.489895 -1.090659 -0.592679    
C      -1.174376  0.282011 -0.197658 -0.030751  0.117374  1.591109  0.796908    
 
first              
second       two   
A      -0.938209   
B      -0.851483   
C       0.442621   

我想使用列表仅从第一组列中选择列,

select_cols=['bar', 'qux']

这样的结果是:

first        bar                  qux   
second       one       two        one        two 
A      -0.119687 -0.518318  -0.039300  -0.938209     
B       0.123480 -2.091120  -0.592679  -0.851483     
C      -1.174376  0.282011   0.796908   0.442621   

我该怎么做? (提前致谢)

请您参考如下方法:

简单的列选择也可以:

df[['bar', 'qux']] 
 
# first        bar                 qux           
# second       one       two       one       two 
# A       0.651522  0.480115 -2.924574  0.616674 
# B      -0.395988  0.001643  0.358048  0.022727 
# C      -0.317829  1.400970 -0.773148  1.549135