[英]Pandas: Complex query on MultiIndex
I have the following DataFrame 我有以下DataFrame
data = DataFrame({'k1':['one'] * 3 + ['two'] *4,
'k2':[1, 1, 2, 3, 3, 4, 4],
'date': [
DT.datetime(2013,1,1,14,0),
DT.datetime(2013,1,1,14,5),
DT.datetime(2013,1,2,15,0),
DT.datetime(2013,1,2,10,0),
DT.datetime(2013,1,3,19,0),
DT.datetime(2013,1,3,18,0),
DT.datetime(2013,1,4,16,0)]
})
data.set_index(['date','k1', 'k2'], inplace=True)
Does anyone know how I can query this MultiIndex to retrieve all entries which are before 2013-01-02 and have k1 = 'one' and k2 = 1? 有谁知道我如何查询此MultiIndex以检索2013年1月2日之前的所有条目,并且k1 ='one'和k2 = 1?
Any help is appreciated 任何帮助表示赞赏
Thanks 谢谢
You can use data.index.get_level_values()
to filter multiIndex 您可以使用
data.index.get_level_values()
过滤multiIndex
>> data.iloc[data.index.get_level_values('k1') == 'one']
to filter the index based on k1
alone. 仅根据
k1
过滤索引。 To filter based on k1
and k2
use can use 要基于
k1
和k2
过滤,可以使用
>> data.iloc[(data.index.get_level_values('k1') == 'one') & (data.index.get_level_values('k2') == 1)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.