python - 过滤一个熊猫列,这是两个日期之间的差异
问题描述
我有一个熊猫表,其中显示了 2 个日期和它们之间的持续时间:
| date1 | date2 | duration |
+------------+------------+----------+
| 10/04/2018 | 15/05/2018 | 5 days |
| 23/04/2018 | 28/04/2018 | 5 days |
| 27/11/2018 | 28/11/2018 | 1 days |
+------------+------------+----------+
持续时间列由df['duration'] = df['date2'] - df['date1']
例如,如果我尝试过滤低于 5 的持续时间:
df.query('duration < 5')
这将失败,因为它尝试过滤 int 上的日期时间对象。
解决这个问题的最佳方法是什么?将 5 设置为日期时间对象?
解决方案
您可以.dt.days
对timdelta
值使用访问器来获取天数作为整数值,然后您可以将其与另一个数字进行比较。
>>> df.query('duration.dt.days < 5')
date1 date2 duration
2 2018-11-27 2018-11-28 1 days
推荐阅读
- c# - 如何为 HttpClient 建立合法的 URL
- sed - 使用 sed 仅选择字符串的一部分 ("name=number" )
- r - 在 R 中使用 ode23s 的非数字参数错误
- python - python - 如何从串口完全读取数据?
- r - 一遍又一遍地在控制台中获取“+”
- r - 使用 R 将数据帧分成更小的数据帧
- weblogic - 如何在 Weblogic 12c 诊断日志文件名中配置时间戳
- mysql - 本地主机上的 mySQL 错误,但远程主机上没有
- c# - FindGameObjectsWithTag 找到很多对象
- gcc - Address Sanitizer 可以在检测到错误后立即中止吗?