pandas datetime列调用strftime生成时间字符串时额外输出日期问题
问题原因
你出现该问题的根本原因是strftime方法的格式占位符使用错误,具体错误如下:
- 表示分钟的占位符应为大写
%M,你使用的小写%m是月份的占位符 - 表示秒数的占位符应为大写
%S,你使用的小写%s是*Unix时间戳(从1970-01-01到当前时间的总秒数)*的占位符
占位符用错导致格式化逻辑完全不符合你的预期,才会出现异常的输出内容。
修复后的代码
要生成HH:MM:SS.fff格式的时间字符串,正确写法如下:
print(meta['DATETIME'].dt.strftime('%H:%M:%S.%f').str[:-3].values)
运行后输出就会是你预期的['11:12:48.660' '11:12:58.660']格式。
补充说明
如果你的pandas版本 >= 1.4.0,还可以直接用更简洁的写法,无需手动切片:
print(meta['DATETIME'].dt.strftime('%H:%M:%S.%3f').values)
%3f会直接保留微秒的前三位,也就是毫秒精度。
内容的提问来源于stack exchange,提问作者jb1225
相关产品推荐
相关产品推荐

