我有一个如下所示的数据帧:
Num First_Date Last_Date
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008526 7/3/2013 0:00 7/18/2013 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008534 3/25/2014 0:00 5/5/2014 0:00
20008636 7/15/2015 0:00 8/18/2015 0:00
20008636 7/15/2015 0:00 8/18/2015 0:00
20008636 7/15/2015 0:00 8/18/2015 0:00
基本上,我想看看这两个日期是否都在我指定的时间段内
period_beg = datetime.datetime(2015, 7, 1, 0, 0)
period_end = datetime.datetime(2015, 9, 30, 0, 0)
这就是我要去的地方,但这看起来很疯狂和复杂。。。哦,它不起作用了!哈哈
df['TimeCheck'] = df[(df['First_Date'] >= period_beg) and (df['Last_Date'] <= period_end)]
以下是我希望获得的:
Num First_Date Last_Date TimeCheck
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008526 7/3/2013 0:00 7/18/2013 0:00 TRUE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008534 3/25/2014 0:00 5/5/2014 0:00 FALSE
20008636 7/15/2015 0:00 8/18/2015 0:00 TRUE
20008636 7/15/2015 0:00 8/18/2015 0:00 TRUE
20008636 7/15/2015 0:00 8/18/2015 0:00 TRUE
那么,如何做到这一点呢?还有-我应该这样做(我不知道它的术语)还是应该迭代行并逐个添加值
您需要使用按位
&
而不是and
:这是因为您正在比较数组,而不是
and
不理解的标量值您还尝试使用条件中的布尔掩码来索引df,方法如下:
因为
and
生成了ValueError
:即使您将上述中的
and
更改为&
,这也只会分配True
值:这不是你想要的
另外,只有最后3行符合您的条件,不确定为什么您希望最后日期值为
7/18/2013 0:00
的行也为True
相关问题 更多 >
编程相关推荐