我有一个 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/