python - 过滤 pandas 列,即 2 个日期之间的差异

标签 python pandas

我有一个 pandas 表,其中显示 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 作为日期时间对象?

最佳答案

您可以对 timedelta 值使用 .dt.days 访问器来获取整数值的天数,然后您可以将其与另一个数字进行比较。

>>> df.query('duration.dt.days < 5')
       date1      date2 duration
2 2018-11-27 2018-11-28   1 days

关于python - 过滤 pandas 列,即 2 个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68838858/

相关文章:

python - 使用查询字符串过滤多重索引

python - 从数组中提取正值和负值的计数

python - 比较 2 个数据框 Pandas,返回错误值

python - 将几列除以 Pandas 中的其他几列

python - 我无法将我在 Seaborn 中的线图的 xticks 设置为相应小时的值

python - 根据 ID 添加 Pandas 列值

python - 交互式Python控制台和Django的 "manage.py shell"的区别

python - 记录分组算法

python - 什么是 get-pip.py 校验和?我在哪里可以确定?

python - 为什么 Python 的 sorted() 方法不会反转字典中具有相同值的键的顺序?