在pandas数据框中通过多重索引进行选择(子集)
我在想有没有一种简单的方法,可以根据多重索引来选择或筛选一个Pandas数据框。我的数据看起来是这样的(id和日期是索引):
values
id date
10113 2010-07-21 24.7000
2010-07-22 25.2600
2010-07-23 25.2800
2010-07-26 25.3700
2010-07-27 25.2900
10223 2011-07-21 24.7000
2011-07-22 25.2600
2011-07-23 25.2800
2011-07-26 25.3700
2011-07-27 25.2900
我想要的结果是这样的:
df.xs[10223).xs('2011-07-21':'2011-07-30')
但是上面的代码在第二个 xs()
的时候不管用。xs()
只能选择一行,而不能选择数据框的一个子集。我也试过 df.query()
和 df.ix()
,但都没有成功。
谢谢你的帮助!
1 个回答
15
你可以这样使用 .xs
或 .ix
:
print df.ix[(10223,'2011-07-21'):(10223,'2011-07-30')]
values
id date
10223 2011-07-21 24.70
2011-07-22 25.26
2011-07-23 25.28
2011-07-26 25.37
2011-07-27 25.29
print df.xs(10223,level='id')
values
date
2011-07-21 24.70
2011-07-22 25.26
2011-07-23 25.28
2011-07-26 25.37
2011-07-27 25.29
想了解更多信息,可以查看 这里