【问题标题】:How to calculate difference between datetime objects and get a time interval based on the number of days如何计算日期时间对象之间的差异并根据天数获取时间间隔
【发布时间】:2019-11-21 02:12:06
【问题描述】:

我有 2 个这样的日期时间列:

第 1 列:

0   2016-06-30 16:57:12.219297
1   2016-07-19 16:02:21.408984
2   2016-07-19 16:02:21.408984
3   2017-08-31 16:35:14.414915
4   2017-08-31 16:35:14.414915
5   2016-07-14 19:39:21.029636
6   2018-07-30 15:10:41.919970
7   2016-08-16 13:50:16.941665
8   2017-04-27 22:19:32.264015
9   2018-06-25 19:47:42.126527

第 2 栏:

0   2019-07-02 21:06:06.080788
1   2019-06-02 21:58:55.188987
2   2019-06-02 21:59:25.069153
3   2016-07-14 19:39:21.029636
4   2018-07-30 15:10:41.919970
5   2017-08-31 16:35:14.414915
6   2017-08-31 16:35:14.414915
7   2019-01-21 15:20:07.471152
8   2017-07-20 17:24:44.189102
9   2017-07-20 17:24:44.189102

我想计算 2 之间的时间差并以天为单位得到结果。完成此操作后,我希望将这些结果保存在 45 天之间。

我该怎么做?

提前致谢

【问题讨论】:

    标签: python pandas datetime intervals


    【解决方案1】:

    使用Series.dt.days 将timedeltas 转换为天并按boolean indexing 过滤:

    df['diff'] = (df['col2'] - df['col1']).dt.days
    
    df1 = df[df['diff'] < 45]
    df2 = df[df['diff'] > 45]
    

    【讨论】:

    • 谢谢@jezrael。但如果使用df1 = df[df['diff'] &lt; 45] df2 = df[df['diff'] &gt; 45] 我将无法获得间隔。我会得到 45 岁以上和 45 岁以下的,但这是我要排除的,我想保留中间部分。 45 范围内的那些
    • @Miguel2488 - 不确定是否理解,你认为== 45 吗?
    • 不不,没关系,耶兹瑞尔。 TY谢谢你,你发布的解决方案很好:)
    猜你喜欢
    • 1970-01-01
    • 2013-09-21
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2021-11-25
    • 2011-08-01
    相关资源
    最近更新 更多