我有一个名为“ 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
有人知道我在做什么错以及如何解决吗?
答案 0 :(得分:2)
没关系,我通过反复试验得到了答案:
morethan7days = gaps > datetime.timedelta(days=7)
答案 1 :(得分:1)
您可以将Series.dt.days
的timedeltas
转换为天数,然后按整数进行比较:
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')