在python中添加24小时

Posted

技术标签:

【中文标题】在python中添加24小时【英文标题】:Add 24 hours to time in python 【发布时间】:2019-07-30 14:14:00 【问题描述】:

需要以 24 小时为单位添加具有“时间”格式值的数据框列。 例如:如果 24 小时加上 10:30:30 的值,那么预期的结果是 34:30:30,下面的代码片段(作为图像添加)生成 '0 days 10:30:30'

enter image description here 谁能指导我不要获得 0days 并获得 24 小时以添加小时值。

【问题讨论】:

请将您的代码添加到您的问题中,而不是截图 How to add/subtract time (hours, minutes, etc.) from a Pandas DataFrame.Index whos objects are of type datetime.time?的可能重复 【参考方案1】:

示例

N = 10
np.random.seed(2019)
rng = pd.date_range('2017-04-03 15:30:20', periods=N, freq='13.3T')
df = pd.DataFrame('vstime': np.abs(np.random.choice(rng, size=N) - 
                                 np.random.choice(rng, size=N)))

print (df)
    vstime
0 00:39:54
1 00:13:18
2 01:06:30
3 01:19:48
4 00:13:18
5 00:13:18
6 01:46:24
7 01:06:30
8 00:39:54
9 01:46:24

您的代码使用to_timedelta 并添加Timedelta

df['vstime'] = pd.to_timedelta(df['vstime']) + pd.Timedelta(24, unit='h') 

原生不支持格式化timedelta,所以需要自定义函数:

def f(x):
    ts = x.total_seconds()
    hours, remainder = divmod(ts, 3600)
    minutes, seconds = divmod(remainder, 60)
    return ('::02d::02d').format(int(hours), int(minutes), int(seconds)) 

df['duration'] = df['vstime'].apply(f)
print (df)
           vstime  duration
0 1 days 00:39:54  24:39:54
1 1 days 00:13:18  24:13:18
2 1 days 01:06:30  25:06:30
3 1 days 01:19:48  25:19:48
4 1 days 00:13:18  24:13:18
5 1 days 00:13:18  24:13:18
6 1 days 01:46:24  25:46:24
7 1 days 01:06:30  25:06:30
8 1 days 00:39:54  24:39:54
9 1 days 01:46:24  25:46:24

【讨论】:

以上是关于在python中添加24小时的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式帮助:在表达式中添加 24 小时

如何以 24 小时格式添加迄今为止的小时数

如何使用 DATEDIFF() 返回自添加以来已超过 24 小时的行

momentjs怎么添加24小时制的

如何添加两个小时和分钟的地图并在python中添加它们[重复]

添加约束以将电池循环限制为每 24 小时 1 次充电和 1 次放电