Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧中的多索引选择(子集)_Python_Pandas_Subset_Dataframe - Fatal编程技术网

Python 数据帧中的多索引选择(子集)

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

我想知道是否有一种基于多索引选择或子集熊猫数据帧的干净方法。我的数据如下所示(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-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