python - df 查询 Timedelta 列,其中持续时间 <= 1 小时
问题描述
#query that fetches all items where duration <= 1 hours
df = df[(df['Td'].dt.total_seconds() <= 3600) & (df['Td'].dt.total_seconds() >= 0)]
例如,上面的查询排除了开始01/01/20 23:30:00
和结束的项目01/02/20 00:18:00
,但是他们需要被包括在内!
如果我在上面的查询中添加附加条件(df['Td'].dt.total_seconds() >= -3600)
,它会开始包括诸如pd.Timedelta(days=-1, hours=23)
.
我如何确保我获取的唯一项目在 1 小时内,而不管pd.Timedelta(days=-1, hours=23)
评估为的日期变化如何hours=-1
?
例子:
-3600 <= pd.Timedelta(days=-1, hours=23).total_seconds() <= 3600
True
我不希望包括在内,因为从前一天过去了 23 小时而不是 -3600 秒/-1 小时。
解决方案
最终使用了unix时间戳。从给定的 timedelta 中减去一个纪元开始的 timedelta 对象,并将结果除以 60 以获得分钟。
推荐阅读
- mysql - 无论如何分配一个等于id本身的表的默认值?
- c# - Blazor 路由和导航问题,如何向组件添加导航,但不加载所有新页面
- angular - ng-zorro 的线性 ProgressBar 未显示
- python - 比较两个数据框并将数据附加到 python pandas
- python - 使用 Django 过滤器的自定义过滤器
- html - 导航栏切换器始终打开且无法正常工作
- javascript - 溢出时如何使表格数据单元格选取框
- python - 如何在 Django 中使用 PUT 和 PATCH 方法保存和返回多个对象
- jmeter - 如何根据给定 json 中的条件 false 提取日期和 ID,我需要在 Jmeter 提取器中应用表达式。请建议
- mysql - 结合 3 个表格并输出一个人,一个技能,以及这个人是否有技能