对pandas列进行过滤,该列是两个日期之间的差值



我有一个熊猫表,它显示了两个日期和它们之间的持续时间:

|   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 |
+------------+------------+----------+

duration列由df['duration'] = df['date2'] - df['date1']

生成如果我尝试过滤持续时间低于5,例如:df.query('duration < 5')如果试图在int类型上过滤datetime对象,则会失败。

解决这个问题的最好方法是什么?设置5作为日期时间对象?

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

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

最新更新