过滤date的pandas数据框

我有一个“date”列pandas数据框。 现在我需要过滤掉数据框中所有的date在未来两个月之外的行。 基本上,我只需要保留在未来两个月内的行。 什么是最好的方式来实现这一点。

如果是索引,则应使用.ix.locselect器。

例如:

 df.ix['2014-01-01':'2014-02-01'] 

在这里看到细节http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection

我觉得在开始之前,大量阅读pandas是很明智的,因为它是一个非常强大的图书馆。 否则,将很难做到有意义的事情。

更新:

如果该列不是索引,则有两个select:

  1. 将其作为索引(如果是时间序列数据,则为临时或永久)
  2. df[(df['date'] > '2013-01-01') & (df['date'] < '2013-02-01')]

请参阅这里的一般解释

以前的回答在我的经验中是不正确的,你不能通过它一个简单的string,需要是一个date时间对象。 所以:

 import datetime df.ix[datetime.date(year=2014,month=1,day=1):datetime.date(year=2014,month=2,day=1)] 

如果你的date是通过导入date时间包来标准化的,你可以简单地使用:

 df[(df['date']>datetime.date(2016,1,1)) & (df['date']<datetime.date(2016,3,1))] 

为了使用datetime包标准化你的datestring,你可以使用这个函数:

 import datetime datetime.datetime.strptime 

如果date在索引中,那么简单地:

 df['20160101':'20160301']