为了账号安全,请及时绑定邮箱和手机立即绑定

将整数秒值转换为日期时间。Python

将整数秒值转换为日期时间。Python

杨魅力 2023-07-11 17:08:26
我试图找出将秒数组自动转换为日期时间的最简单方法。我非常熟悉将 1970 年的秒数转换为日期时间,但我这里的值是给定一天中经过的秒数。例如,14084 是 2011 年 11 月 11 日过去的秒数,我能够生成下面的日期时间。str(dt.timedelta(seconds = 14084))Out[245]: '3:54:44'dt.datetime.combine(date(2011,11,11),time(3,54,44))Out[250]: datetime.datetime(2011, 11, 11, 3, 54, 44)有没有更快的数组转换方法。
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

例如你可以这样做:

import numpy as np

date_array = np.arange('2005-02', '2005-03', dtype='datetime64[D]')

date_array += np.timedelta64(4, 's')  # Add 4 seconds

如果您有一个秒数组,您可以将其转换为一个时间增量数组并将其添加到固定日期时间


查看完整回答
反对 回复 2023-07-11
?
繁星coding

TA贡献1797条经验 获得超4个赞

说你有


seconds = [14084, 14085, 15003]

你可以使用熊猫


import pandas as pd

series = pd.to_timedelta(seconds, unit='s') + pd.to_datetime('2011-11-11')

series = series.to_series().reset_index(drop=True)


print(series)

0   2011-11-11 03:54:44

1   2011-11-11 03:54:45

2   2011-11-11 04:10:03

dtype: datetime64[ns]

或者列表理解


list_comp = [datetime.datetime(2011, 11, 11) +

    datetime.timedelta(seconds=s) for s in seconds]


print(list_comp)

[datetime.datetime(2011, 11, 11, 3, 54, 44), datetime.datetime(2011, 11, 11, 3, 54, 45), datetime.datetime(2011, 11, 11, 4, 10, 3)]




查看完整回答
反对 回复 2023-07-11
  • 2 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信