【问题标题】:How to take difference between datetime.times in a pandas DataFrame column如何在 pandas DataFrame 列中获取 datetime.times 之间的差异
【发布时间】:2021-06-16 07:27:11
【问题描述】:

我有时会遇到 df:

import datetime as dt
import pandas as pd

data = [dt.time(0,0,10), dt.time(0,24,30), dt.time(4,20,12)]

df = pd.DataFrame(data, columns=['times'])

如何使用 .diff() 中的逻辑来获取日期时间的差异,如下所示,“间隙”行中的第一个条目将为空白,下一个将是第二行和第一行之间的差异'时间'值,等等?

df['gap'] = df['times'].diff()

到目前为止,我遇到了一个错误

“不支持的操作数类型 -: 'datetime.time' 和 '日期时间.时间'

【问题讨论】:

    标签: python pandas datetime python-datetime


    【解决方案1】:

    您必须将data 转换为datetime.datetime 的列表:

    data = [dt.time(0,0,10), dt.time(0,24,30), dt.time(4,20,12)]
    data = [dt.datetime.combine(dt.date.today(), d) for d in data]
    
    df = pd.DataFrame(data, columns=['times'])
    df.times.diff()
    

    输出

    0               NaT
    1   0 days 00:24:20
    2   0 days 03:55:42
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 2022-09-22
      • 2018-05-19
      • 2016-07-12
      • 1970-01-01
      • 2022-11-27
      相关资源
      最近更新 更多