根据两个日期时间之间的差异创建一个布尔数据框

时间:2019-01-12 15:28:07

标签: python pandas datetime boolean

我有一个名为“ gaps”的熊猫数据框,如下所示:

Index    Gap in days
0        2 days 00:00:00
1        8 days 00:00:00
2        4 days 00:00:00
3        15 days 00:00:00
...
201      21 days 00:00:00

日期格式已转换为标准日期时间格式。我想创建一个简单的布尔数据框,如果以天为单位的间隔超过7天,则返回TRUE,否则返回FALSE。

我最初的尝试很简单:

morethan7days = gaps > 7

我收到错误消息:

TypeError: invalid type comparison

有人知道我在做什么错以及如何解决吗?

2 个答案:

答案 0 :(得分:2)

没关系,我通过反复试验得到了答案:

morethan7days = gaps > datetime.timedelta(days=7)

答案 1 :(得分:1)

您可以将Series.dt.daystimedeltas转换为天数,然后按整数进行比较:

gaps = df['Gap in days']
morethan7days = gaps.dt.days > 7
print (morethan7days)
0    False
1     True
2    False
3     True
4     True
Name: Gap in days, dtype: bool

另一种解决方案是与pandas.Timedelta进行比较:

gaps = df['Gap in days']
morethan7days = gaps > pd.Timedelta(7, unit='d')