Python 查询多索引数据帧后获取多索引的值

Python 查询多索引数据帧后获取多索引的值,python,pandas,multi-index,Python,Pandas,Multi Index,如果我有一个多索引数据框,如下所示: 作为pd进口熊猫 import pandas as pd import numpy as np input_id = np.array(['input_id']) docType = np.array(['pre','pub','app','dw']) docId = np.array(['34455667']) sec_type = np.array(['bib','abs','cl','de']) sec_ids = np.array(['x-y','

如果我有一个多索引数据框,如下所示:

作为pd进口熊猫

import pandas as pd
import numpy as np

input_id = np.array(['input_id'])
docType = np.array(['pre','pub','app','dw'])
docId = np.array(['34455667'])
sec_type = np.array(['bib','abs','cl','de'])
sec_ids = np.array(['x-y','z-k'])
index = pd.MultiIndex.from_product([input_id,docType,docId,sec_type,sec_ids])
content= [str(np.random.randint(1,10))+ '##' + str(np.random.randint(1,10)) for i in range(len(index))]
df = pd.DataFrame(content, index=index, columns=['content'])
df.rename_axis(index=['input_id','docType','docId','secType','sec_ids'], inplace=True)
我想查询多索引DF

# query a multiindex DF
idx = pd.IndexSlice
df.loc[idx[:,'pub',:,'de',:]]
导致:

我想以列表的形式直接获取多索引列sec_id的值。如何修改以获得以下结果:

['x-y','z-k']
谢谢

您可以使用该方法获取多索引特定级别的值。所以在这种情况下,在你的切片后调用它

df.loc[idx[:,'pub',:,'de',:]].index.get_level_values('sec_ids').tolist()
#['x-y', 'z-k']
您可以使用该方法获取多索引的特定级别的值。所以在这种情况下,在你的切片后调用它

df.loc[idx[:,'pub',:,'de',:]].index.get_level_values('sec_ids').tolist()
#['x-y', 'z-k']