我有一个索引为(ID,Date)的数据框,我想在特定时间范围内选择所有观测值(例如06-1988:11-1988)。如果不是在某个ID的时间范围内所有观察结果都存在,我仍然要包括存在 的那些结果。
可视化我的数据框以提供更好的主意:(面板不平衡)
Var1 Var2
ID Date
10113 2010-07 24.7000 24.7000
2010-08 25.2600 24.7000
2010-09 25.2800 25.2800
2010-10 25.3700 25.3700
10223 2010-09 24.7000 24.7000
2010-10 25.2600 25.2600
2011-11 25.2800 25.2800
2011-12 25.3700 25.3700
2012-01 25.2900 25.2900
例如,我想要2010-09到2011-12之间的所有观测值,我想获得以下输出:
Var1 Var2
ID Date
10113 2010-09 25.2800 25.2800
2010-10 25.3700 25.3700
10223 2010-09 24.7000 24.7000
2010-10 25.2600 25.2600
2011-11 25.2800 25.2800
2011-12 25.3700 25.3700
我也有一个系列,它们具有相同的两个多索引设置,并且可以使用以下命令:
X.loc[:,'1988-06':'1998-07']
如果我想要1988-06到1998-07之间的所有ID的所有观测值。当我对数据框尝试相同的方法时,出现了KeyError。
是否可以对数据框执行相同操作?
答案 0 :(得分:0)
您是否尝试仅使用一个“日期”值访问它?就像是:
X.loc[:,'1988-06']
此问题也可能有帮助:pandas: slice a MultiIndex by range of secondary index
答案 1 :(得分:0)
尝试一下:
out_frame = df[(df['Date'] > '2010-09') & (df['Date'] < '2012-12')]