gpt4 book ai didi

python - 将 python 列中以毫秒为单位的字符串时间转换为时间戳

转载 作者:太空宇宙 更新时间:2023-11-03 20:55:06 24 4
gpt4 key购买 nike

我在数据帧(“df”)中有一个列(“arrival_time”),其中包含格式为“H:M:S:f”(f --> 毫秒)的时间字符串值。有些只有“H:M:S”,所以整栏的格式不一致。

我尝试转换为时间戳以获得字符串时间的数字表示。

示例数据:

0          20:43:09:01
1 06:00:16
2 06:30:21
3 07:00:03
4 06:32:43
5 07:33:31
6 07:37:39:09
7 07:49:01
8 08:52:05
9 08:29:44:10
import time
import datetime

def conv_date(myDate):
try:
if str(myDate).count(":") == 3:
dt = datetime.datetime.strptime(myDate,'%H:%M:%S,%f').timestamp()
else:
dt = datetime.datetime.strptime(myDate,'%H:%M:%S').timestamp()
except:
return float('NaN')
return dt

# some values are data type 'float' so converted everything to string
df["arrival_time"] = df["arrival_time"].astype(str).apply(conv_date)

Output:
0 -2.208885e+09
1 -2.208938e+09
2 -2.208937e+09
3 -2.208935e+09
4 -2.208936e+09
5 -2.208933e+09

当我期望得到正值时,我得到了负时间戳。

最佳答案

尝试附加当天的数据并使用它:

p = pd.to_datetime("2019-04-22 05:03:35",format='%Y-%m-%d %H:%M:%S.%f')
p.timestamp()
1555909415.0

p = pd.to_datetime("2019-04-22 05:03:35.74",format='%Y-%m-%d %H:%M:%S.%f')
p.timestamp()
1555909415.74

您可以像这样附加当前日期:

df.date = df.date.apply(lambda x: datetime.now().date().strftime("%Y-%m-%d") + " " + x)

并使用它来应用于整个数据框使用这个:

df["event_timestamp"] = pd.to_datetime(df["event_timestamp"], format='%Y-%m-%d %H:%M:%S.%f')

关于python - 将 python 列中以毫秒为单位的字符串时间转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56070489/

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