【问题标题】:How to extract only time in HH:MM:SS format from a 'timedelta object'如何从“timedelta 对象”中仅提取 HH:MM:SS 格式的时间
【发布时间】:2020-08-12 23:47:36
【问题描述】:

我有一个 timedelta 对象,例如:0 天 00:03:56.571428571 我想将其保存为仅时间格式,例如:00:03:56 基本上,我想从 timedelta 对象中删除天数和毫秒数部分。

另外,请注意它只是一个“Timedelta”对象(它是 Pandas 数据帧中连续“datetime”对象差异的平均值)而不是一个“datetime.timedelta”。

你能指导我吗?我怎样才能实现这个输出?

谢谢。

【问题讨论】:

  • 也许this 有帮助?

标签: python-2.7 timedelta


【解决方案1】:

您可以将以下代码用于具有日期时间值的两列(或者您可以使用 应用于包含已计算的 timedelta 对象的单个列)。 使用 timedelta 的组件获取小时、分钟和秒,然后使用 datetime 中的时间返回具有小时、分钟、秒的对象,并忽略其余部分。

import pandas as pd
from datetime import time

A = [pd.to_datetime('2020-10-19 20:12:10', format='%Y-%m-%d %H:%M:%S'),
     pd.to_datetime('2020-11-09 20:10:04', format='%Y-%m-%d %H:%M:%S')]
B = [pd.to_datetime('2020-10-12 16:16:14', format='%Y-%m-%d %H:%M:%S'),
     pd.to_datetime('2020-09-01 20:22:04', format='%Y-%m-%d %H:%M:%S')]

df = pd.DataFrame(data =[A,B], columns=['Date1','Date2'])



df['Timeinterval'] = (df['Date1']-df['Date2']).apply(lambda x:time(x.components[1],x.components[2],x.components[3]))
df

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2017-08-15
    • 2018-02-20
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    相关资源
    最近更新 更多