【问题标题】:How to find difference between 2 timestamps in pandas dataframe如何在熊猫数据框中找到2个时间戳之间的差异
【发布时间】:2020-12-02 00:08:22
【问题描述】:

我有这个数据框,在这里我想找出每一行的时间差

      open     close
0   09:44:00  10:07:00
1   10:07:00  11:01:00
2   11:05:00  13:05:00

我尝试了以下代码。

import numpy as np
(df['open']-df['close'])/np.timedelta64(1,'m')

但出现以下错误

TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

请帮帮我!

【问题讨论】:

    标签: python-3.x pandas dataframe time timestamp


    【解决方案1】:

    您可以在减法之前使用pd.to_datetime() 转换值:

    print(
        (pd.to_datetime(df['close']) - pd.to_datetime(df['open'])) / np.timedelta64(1,'m')
    )
    

    打印:

    0     23.0
    1     54.0
    2    120.0
    dtype: float64
    

    【讨论】:

    • 我尝试了您的建议,但问题仍然存在https://colab.research.google.com/drive/126NV4zJvkMyMcG9IFd4aI9MfUjrfNERn?usp=sharing。请看我的笔记本
    • @SamarPratapSingh 删除 .dt.time 部分。这些列需要是 datetime 类型才能工作。
    【解决方案2】:

    你必须使用这个功能。

    pd.Timedelta(df['open']-df['close']).seconds
    

    结果以秒为单位

    【讨论】:

    • 我尝试了您的建议,但问题仍然存在https://colab.research.google.com/drive/126NV4zJvkMyMcG9IFd4aI9MfUjrfNERn?usp=sharing。请看我的笔记本
    猜你喜欢
    • 2021-11-15
    • 2018-04-18
    • 2017-09-07
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 2021-02-06
    • 1970-01-01
    相关资源
    最近更新 更多