Pandas选择不连续的数据帧日期切片?

时间:2013-12-10 18:49:01

标签: python pandas

我有一个带有日期时间索引的pandas DF: 这个选择工作正常

threeyrs=actdf['01/01/2010':'12/31/2012']

但我希望得到类似的结果(排除2010年):

threeyrs=actdf['01/01/2009':'12/01/2009','01/01/2011':'12/01/2012']

给了我“不可动摇的类型” 这给了我一个字符串

threeyrs=actdf['01/01/2009':'12/31/2009'],actdf['01/01/2011':'12/31/2012']

有方便的方法吗? dataFrame看起来像

            Units
date    
2000-05-01   3041
2000-06-01   3079
2000-07-01   2455
2000-08-01   2671
2000-09-01   2220

2 个答案:

答案 0 :(得分:4)

0.12& 0.13

In [57]: df[((df.index>Timestamp('20000801')) & (df.index<=Timestamp('20000901'))) | ((df.index>Timestamp('20000501')) & (df.index<=Timestamp('20000601')))]
Out[57]: 
            units
date             
2000-06-01   3079
2000-09-01   2220

[2 rows x 1 columns]

仅限0.13

In [58]: df.query('(date>20000801 & date<=20000901) | (date>20000501 & date<=20000601)')
Out[58]: 
            units
date             
2000-06-01   3079
2000-09-01   2220

[2 rows x 1 columns]

答案 1 :(得分:4)

threeyrs = pd.concat([actdf['01/01/2009':'12/01/2009'], actdf['01/01/2011':'12/01/2012']])