Python 时间比较不产生准确的结果

Python 时间比较不产生准确的结果,python,datetime,pandas,filter,dataframe,Python,Datetime,Pandas,Filter,Dataframe,我有一个数据框,试图过滤日期列中的值介于StartDate和FinishDate之间的值。为了实现这一点,我从这些日期的字符串值中创建带有pandas.To_datetime的列,然后根据这些值进行过滤 result['date'] = pd.to_datetime(result.DateCreated) result['StartDate'] = pd.to_datetime(result.StartDate) result['FinishDate'] = pd.to_

我有一个数据框,试图过滤日期列中的值介于
StartDate
FinishDate
之间的值。为了实现这一点,我从这些日期的字符串值中创建带有
pandas.To_datetime
的列,然后根据这些值进行过滤

    result['date'] = pd.to_datetime(result.DateCreated)
    result['StartDate'] = pd.to_datetime(result.StartDate)
    result['FinishDate'] = pd.to_datetime(result.FinishDate)
    result = result[(result.date >= result.StartDate) &
                    (result.date <= result.FinishDate)]
其中有几个将(
result.date>=result.StartDate
)的初始条件读取为
False
,尽管它们显然是真的

例如,如果只是进行字符串比较,2009-06-08在时间和词汇上都在2009-05-01之后

编辑以添加一些版本控制信息: 在确保python pandas等版本相同的过程中,收集了要共享的版本信息,以防在此有所帮助:

熊猫版本0.16.2 python版本2.7.9
ipython 3.2.0

要过滤数据帧,您可以在

df[df.date1.between(date2,date3)]

你是故意让“StartDate”和“FinishDate”列出现两次吗?是的,第二个2是pd.to_日期框之前的原始值,我在这里包括了这些值,以防它们提供了一些见解。你能解释一下你的答案吗?那是date2,date3还是df.date2,df.date3?所有的日期都是数据库中的行,不仅仅是Date1,它提供了相同的结果,但更精简的过滤器版本非常有用
df[df.date1.between(date2,date3)]