【问题标题】:Python pandas - Finding time durationPython pandas - 查找持续时间
【发布时间】:2021-10-04 01:21:59
【问题描述】:

我在查找持续时间时遇到问题。 df是

data ={ 
    'initial_time': ['2019-05-21 22:29:55','2019-10-07 17:43:09','2020-12-13 23:53:00','2018-04-17 23:51:23','2016-08-31 07:40:49'],
    'final_time' : ['2019-05-22 01:10:30','2019-10-07 17:59:09','2020-12-13 00:30:10','2018-04-18 01:01:23','2016-08-31 08:45:49'],
    'duration' : [0,0,0,0,0]
      }
df =pd.DataFrame(data)
df

输出:

       initial_time            final_time     duration
0   2019-05-21 22:29:55   2019-05-22 01:10:30   0
1   2019-10-07 17:43:09   2019-10-07 17:59:09   0
2   2020-12-13 23:53:00   2020-12-13 00:30:10   0
3   2018-04-17 23:51:23   2018-04-18 01:01:23   0
4   2016-08-31 07:40:49   2016-08-31 08:45:49   0

我期望的输出是total duration,即final_time - initial_time

注意:它包含初始和最终时间在不同日期的值(第 1 行)。

【问题讨论】:

标签: python pandas time duration


【解决方案1】:

问题可以分解为3个部分:

  1. 将字符串转换为日期时间对象
  2. 编写计算 2 个日期时间对象之间持续时间的函数
  3. 将函数应用于数据框的新列

  1. datetime_object = datetime.strptime('2019-05-21 22:29:55', '%Y-%m-%d %H:%M:%S')
  2. How do I find the time difference between two datetime objects in python?
3) df['duration'] = df.apply(lambda row: getDuration(row['initial_time'], row['final_time'], 'seconds'), axis=1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多