gpt4 book ai didi

python - 将时间字符串格式化为 100 毫秒 - Python

转载 作者:行者123 更新时间:2023-12-01 07:01:23 24 4
gpt4 key购买 nike

我有一个函数,可以将时间字符串格式化为最接近的 0.1 秒。但是,在四舍五入到最接近的秒时,它不会格式化时间戳。我将在下面附上一个示例:

d = ({                            
'Time' : ['2019-08-02 09:50:19.880','2019-08-02 09:50:19.970','2019-08-02 09:50:19.980','2019-08-02 09:50:20.070'],
})

df = pd.DataFrame(data = d)

def format_time(col):
col = pd.to_datetime(col)
t = col
s = t.strftime('%Y-%m-%d %H:%M:%S.%f')
tail = s[-8:]
f = round(float(tail), 3)
temp = "%.1f" % f
return "%s%s" % (s[:-8], temp[0:])

df['Time'] = df['Time'].apply(format_time)

输出:

                     Time
0 2019-08-02 09:50:19.9
1 2019-08-02 09:50:110.0
2 2019-08-02 09:50:110.0
3 2019-08-02 09:50:20.1

预期:

                    Time
0 2019-08-02 09:50:19.9
1 2019-08-02 09:50:20.0
2 2019-08-02 09:50:20.0
3 2019-08-02 09:50:20.1

最佳答案

您可以根据日期舍入 timestamp() 方法返回的值,并从中实例化一个新的 datetime。我添加了一个示例,需要更新从第二到年份的所有字段。

import datetime

d = ({
'Time' : ['2019-08-02 09:50:19.880',
'2019-08-02 09:50:19.970',
'2019-08-02 09:50:19.980',
'2019-08-02 09:50:20.070',
'2019-08-02 09:50:20.320',
'2019-12-31 23:59:59.990'
],
})

df = pd.DataFrame(data = d)

def format_time(col):
t = pd.to_datetime(col)
t = datetime.datetime.fromtimestamp(round(t.timestamp(), 1))
return t.strftime('%Y-%m-%d %H:%M:%S.%f')[:-5]

df['Time'] = df['Time'].apply(format_time)
print(df)

结果是:

                    Time
0 2019-08-02 09:50:19.9
1 2019-08-02 09:50:20.0
2 2019-08-02 09:50:20.0
3 2019-08-02 09:50:20.1
4 2019-08-02 09:50:20.3
5 2020-01-01 00:00:00.0

关于python - 将时间字符串格式化为 100 毫秒 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58616885/

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