Python 数据帧中的多索引选择(子集)
我想知道是否有一种基于多索引选择或子集熊猫数据帧的干净方法。我的数据如下所示(id和日期为索引): 我想要这样的东西:Python 数据帧中的多索引选择(子集),python,pandas,subset,dataframe,Python,Pandas,Subset,Dataframe,我想知道是否有一种基于多索引选择或子集熊猫数据帧的干净方法。我的数据如下所示(id和日期为索引): 我想要这样的东西: df.xs[10223).xs('2011-07-21':'2011-07-30') 但是上面的代码不适用于第二个xs()xs()只能选择一行,不能选择数据帧的子集。我还尝试了df.query()和df.ix(),但没有成功 谢谢你的帮助 您应该能够通过以下方式使用.xs或.ix: print df.ix[(10223,'2011-07-21'):(10223,'2011-0
df.xs[10223).xs('2011-07-21':'2011-07-30')
但是上面的代码不适用于第二个xs()
xs()
只能选择一行,不能选择数据帧的子集。我还尝试了df.query()
和df.ix()
,但没有成功
谢谢你的帮助 您应该能够通过以下方式使用
.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
有关更多信息,请参见谢谢。第一个给了我想要的。但第二个不是。因为我只显示了id=10223的数据中有一部分的时间序列超出了“2011-07-27”,所以我也必须对日期进行切片。
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