如何修改DataFrame中时间列的毫秒显示精度
实现方法
以下针对两种常见的数据存储场景给出可直接运行的方案:
场景1:时间列已为datetime/timedelta类型
如果你的列已经经过时间类型转换,可以先做精度舍入,再格式化输出:
import pandas as pd # 示例数据构造 df = pd.DataFrame({'time_col': pd.to_timedelta(['05:20:45.154', '12:34:56.789'])}) # 先将时间精度四舍五入到0.1秒,再格式化输出 df['time_col'] = pd.to_timedelta( (df['time_col'].dt.total_seconds() * 10).round() / 10, unit='s' ).dt.strftime('%H:%M:%S.%f').str[:-5]
代码中%f会输出6位微秒,用str[:-5]截取前1位即可得到单精度毫秒的效果。
场景2:时间列为字符串类型
如果当前列还存储为字符串格式,可以直接做字符串分割处理,也可以先转时间类型再用场景1的方案处理:
# 示例字符串类型数据构造 df = pd.DataFrame({'time_col': ['05:20:45.154', '12:34:56.789']}) # 直接字符串处理实现四舍五入保留1位毫秒 def format_time_str(s): time_main, ms_part = s.split('.') ms_rounded = round(int(ms_part)/100) return f"{time_main}.{ms_rounded}" df['time_col'] = df['time_col'].apply(format_time_str)
内容的提问来源于stack exchange,提问作者Arcturus Ranger
相关产品推荐
相关产品推荐

