gpt4 book ai didi

Python:将整数转换为日期时间戳

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:41 25 4
gpt4 key购买 nike

我发现很难转换以下列表l:

l = [0, 1]

进入与以下数据帧df的索引对应的时间戳:

                 dt  val
2017-11-13 00:00:00 8
2017-11-13 01:00:00 17

理想情况下,结果必须是:

l = [2017-11-13 00:00:00, 2017-11-13 01:00:00]

因此我可以在重叠 df 的较长时间序列的图中识别这两个时间步长。

执行此操作的最佳方法是什么?我的尝试惨遭失败,我无法理解正确的时间戳格式:

index1 = pd.to_datetime(str(df.index[l[0]]), format='%Y-%m-%d %H:%M:%S')
index2 = pd.to_datetime(str(df.index[l[1]]), format='%Y-%m-%d %H:%M:%S')

这会引发错误:

ValueError: time data '2017-11-13 00:00:00' does not match format '%Y-%m-%d %H:%M:%S' (match)

最佳答案

我认为需要使用 fstrings 来理解列表:

d = pd.to_datetime([f'2017-11-13 {x}:00:00' for x in l], format='%Y-%m-%d %H')
print(d)

DatetimeIndex(['2017-11-13 00:00:00', '2017-11-13 01:00:00'],
dtype='datetime64[ns]', freq=None)

性能(取决于真实数据):

np.random.seed(2018)
l = np.random.randint(12, size=1000).tolist()

In [48]: %%timeit
...: d = pd.to_datetime([f'2017-11-13 {x}:00:00' for x in l], format='%Y-%m-%d %H')
647 µs ± 2.45 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [49]: %%timeit
...: d = pd.to_datetime('2017-11-13' +
pd.Index(l).astype(str).str.zfill(2), format='%Y-%m-%d%H')
...:
4.43 ms ± 22 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

关于Python:将整数转换为日期时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52293232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com