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.很高兴我能帮上忙:)