如何为pandas的datetime对象追加00:00:00.000时间部分
解决方案
首先明确:你用pd.to_datetime('2022-06-01')生成的pandas时间戳对象,本身默认的时间分量就是00:00:00.000,只是pandas默认输出规则会把全零的时间部分做精简隐藏,不需要额外追加时间值,只需要按目标格式做输出即可,两种常用实现方式如下:
- 方式1:直接输出指定格式的字符串
用strftime做格式化即可,注意%f默认返回6位微秒,切片取前3位即可得到毫秒级后缀,全版本pandas兼容:import pandas as pd dt = pd.to_datetime('2022-06-01') result = dt.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3] print(result) # 输出结果:2022-06-01 00:00:00.000 - 方式2:保留时间类型,输出时自动显示毫秒级时间
如果不想转成字符串,可以显式指定时间戳的精度为毫秒级,pandas就不会省略全零的毫秒部分:import pandas as pd dt = pd.to_datetime('2022-06-01').as_unit('ms') print(dt) # 输出结果:2022-06-01 00:00:00.000
不建议手动给日期字符串拼接时间后缀再做类型转换,会产生无意义的性能损耗。
内容的提问来源于stack exchange,提问作者FlyingPickle
相关产品推荐
相关产品推荐

