Python 3.x 使用多索引从数据框中选择子数据

Python 3.x 使用多索引从数据框中选择子数据,python-3.x,pandas,dataframe,multi-index,Python 3.x,Pandas,Dataframe,Multi Index,我需要使用多索引从给定的数据帧中选择一些数据。 现在我需要将它按第二个索引列进行拆分 Data1 Data2 Data3 Data4 first Second A 2010 B 2010 C 2010 A 2011 B 2011 C 2011 D 2011 E 2011 A 2012 B 2012 C 2012 A

我需要使用多索引从给定的数据帧中选择一些数据。 现在我需要将它按第二个索引列进行拆分

                Data1   Data2   Data3   Data4
first  Second
 A      2010
 B      2010
 C      2010
 A      2011
 B      2011
 C      2011
 D      2011
 E      2011
 A      2012
 B      2012
 C      2012
 A      2013
 B      2013
 C      2013
 E      2013
 A      2014
 B      2014
 C      2014
 A      2015
 B      2015
 C      2015

现在我想选择2010年到2014年之间的所有数据,我应该如何对这个数据框架进行子索引

我通常使用
get\u level\u值

lvl1=df.index.get_level_values(1)
df=df[(lvl1>2010)&(lvl1<=2014)]
lvl1=df.index.get_level_值(1)

df=df[(lvl1>2010)和(lvl1I通常使用
get\u level\u值

lvl1=df.index.get_level_values(1)
df=df[(lvl1>2010)&(lvl1<=2014)]
lvl1=df.index.get_level_值(1)

df=df[(lvl1>2010)和(lvl1您也可以使用
query

df.query('2010 <= Second <= 2014')

Out[314]:
              n
first Second
A     2010    1
B     2010    1
C     2010    1
A     2011    1
B     2011    1
C     2011    1
D     2011    1
E     2011    1
A     2012    1
B     2012    1
C     2012    1
A     2013    1
B     2013    1
C     2013    1
E     2013    1
A     2014    1
B     2014    1
C     2014    1

df.query('2010您也可以使用
query

df.query('2010 <= Second <= 2014')

Out[314]:
              n
first Second
A     2010    1
B     2010    1
C     2010    1
A     2011    1
B     2011    1
C     2011    1
D     2011    1
E     2011    1
A     2012    1
B     2012    1
C     2012    1
A     2013    1
B     2013    1
C     2013    1
E     2013    1
A     2014    1
B     2014    1
C     2014    1

df.query('2010此处询问:此处询问:如果第二个不是数字数据(字符串,datetimeindex obj),该怎么办.这不是work@Kid:当然,
query
有其局限性。我根据您的样本数据给出了答案。如果您的
Second
是string,
query
仍然有效,但答案会有所不同。yw.很高兴我能帮上忙:)如果Second不是数字数据(string,datetimeindex obj),该怎么办.这不是work@Kid:当然,
query
有其局限性。我根据您的样本数据给出了答案。如果您的
Second
是string,
query
仍然有效,但答案会有所不同。yw.很高兴我能帮上忙:)