Python 选择两个给定日期之间的数据帧,其中两列的值相等

Python 选择两个给定日期之间的数据帧,其中两列的值相等,python,pandas,Python,Pandas,我可以在两个日期之间选择pandas dataframe,方法是首先将datetimecreated列设置为索引,然后对数据帧进行切片。但现在我想做一个新的查询,涉及一个额外的日期时间列'modifieddate',即: df = df.set_index(['created']) print (df) name modifieddate created

我可以在两个日期之间选择pandas dataframe,方法是首先将datetime
created
列设置为索引,然后对数据帧进行切片。但现在我想做一个新的查询,涉及一个额外的日期时间列'modifieddate',即:

df = df.set_index(['created'])
print (df)
                        name      modifieddate
created                                                        
2014-01-01 16:07:07     john      2014-01-01 16:07:07
2014-01-04 16:07:07     harold    2014-01-04 16:07:07
2014-01-04 16:07:07     clara     2014-01-04 18:07:07
2014-01-05 16:07:07     emily     2014-01-06 16:07:07
2014-01-08 16:07:07     smiths    2014-01-08 16:07:07
2014-01-09 20:07:07     clara     2014-01-09 20:07:07
2014-01-10 18:07:07     clara     2014-01-10 18:07:07
2014-01-10 16:07:07     john      2014-01-11 16:07:07
选择创建的<代码>和修改的<代码>相等且位于给定日期时间<代码>2014-01-04 16:07:07<代码>和<代码>2014-01-10 16:07:07<代码>之间的行:

                        name      modifieddate
created                                                        
2014-01-04 16:07:07     harold    2014-01-04 16:07:07 
2014-01-08 16:07:07     smiths    2014-01-08 16:07:07
2014-01-09 20:07:07     clara     2014-01-09 20:07:07

假设您的列“created”不是索引

 df2=     df.ix[(df.created==df.modifieddate)&(df.created>=datetime.datetime(2014,1,4,
 16,7,7))&(df.created <=datetime.datetime(2014,1,10, 16,7,7)]
df2=df.ix[(df.created==df.modifieddate)和(df.created>=datetime.datetime(2014,1,4,
16,7,7)&(df.created您可以与以下内容一起使用:

s = '2014-01-04 16:07:07'
e = '2014-01-10 16:07:07'
df = df[(df.index.to_series().between(s,e)) & 
        (df.modifieddate.between(s,e)) & 
        (df.index == df.modifieddate)]
print (df)
                       name        modifieddate
created                                        
2014-01-04 16:07:07  harold 2014-01-04 16:07:07
2014-01-08 16:07:07  smiths 2014-01-08 16:07:07
2014-01-09 20:07:07   clara 2014-01-09 20:07:07