Python Dataframe时间列微秒四舍五入保留两位并格式化问题
处理时间列的微秒四舍五入与格式化
原始数据
print(df) time 0 00:00:04.4052727 1 00:00:06.5798
需求说明
将time列的微秒部分四舍五入后保留三位(注:示例结果为三位微秒,推测需求描述存在笔误),最终统一格式为HH:MM:SS.XXX。
处理代码
借助pandas的时间处理功能即可实现,步骤如下:
import pandas as pd # 将字符串时间转为datetime类型,兼容任意长度的微秒 df['time'] = pd.to_datetime(df['time'], format='%H:%M:%S.%f') # 格式化时间为带六位微秒的字符串(自动完成四舍五入),再截取前12位保留三位微秒 df['time'] = df['time'].dt.strftime('%H:%M:%S.%f').str[:-3] print(df)
处理结果
print(df) time 0 00:00:04.405 1 00:00:06.580
代码说明
pd.to_datetime(...):把不同格式的时间字符串统一转为标准datetime类型,确保微秒部分能被正确识别。dt.strftime('%H:%M:%S.%f'):将时间格式化为带六位微秒的字符串,该方法会自动对多余的微秒位进行四舍五入。str[:-3]:截取字符串前12位,刚好保留HH:MM:SS.XXX的格式,去除多余的三位微秒。
内容的提问来源于stack exchange,提问作者ranqnova
相关产品推荐
相关产品推荐

