Python 熊猫多索引选择:如何选择数据帧的子集?
我已经创建了一个名为key_mat的多索引数据框架Python 熊猫多索引选择:如何选择数据帧的子集?,python,list,pandas,indexing,multi-index,Python,List,Pandas,Indexing,Multi Index,我已经创建了一个名为key_mat的多索引数据框架 cnt keys minutes 0000 21:01:00 1 0002 19:08:00 2 16:07:00 1 我想使用.loc >>> key_mat.loc[['0002']] >>> cnt keys minutes 0002 19:08:00
cnt
keys minutes
0000 21:01:00 1
0002 19:08:00 2
16:07:00 1
我想使用.loc
>>> key_mat.loc[['0002']]
>>>
cnt
keys minutes
0002 19:08:00 2
16:07:00 1
现在,我有一个键列表键列表=['0000','0001','0004'…]
和一个分钟列表分钟列表=['19:08:00','20:07:00',…]
。我想选择键列表中的键和分钟列表中的分钟。我试着使用.loc
,但我只是找到了键材料loc[[('0000','21:01:00'),('0002','19:08:00')]['cnt']
。但这不能满足我的需要。我找到了一种使用query
,key\u mat.query({key\u list}中的键和{minutes\u list}中的分钟数)的方法。格式(key\u list=key\u list,minutes\u list=minutes\u list))
。有没有办法使用.loc
或.ix
来完成我的任务?您需要,但首先,因为错误:
KeyError:“多索引切片要求索引为完全lexsort元组len(2),lexsort depth(1)”
很高兴能帮助你!天气真好!
key_list = ['0000','0001','0004']
minutes_list = ['19:08:00','21:01:00']
df.sort_index(inplace=True)
idx = pd.IndexSlice
print (df.loc[idx[key_list,minutes_list],:])
cnt
keys minutes
0000 21:01:00 1