Python使用pandas转换时间列后如何去除日期仅显示时间?
解决仅显示DateTime类型中的时间部分问题
问题场景
执行代码:
f1['Time'] = pd.to_datetime(f1['Time'], format = '%H:%M:%S.%f') f1['Time']
输出结果:
0 1900-01-01 01:32:03.897
1 1900-01-01 02:02:34.598
2 1900-01-01 01:34:31.421
期望得到仅显示时间的结果:
0 01:32:03.897
1 02:02:34.598
2 01:34:31.421
解决方案
方案1:转换为字符串格式的时间
将转换后的DateTime对象通过dt.strftime格式化,保留三位毫秒(和原数据格式匹配):
# 转换并格式化时间,截断到三位毫秒 f1['Time'] = pd.to_datetime(f1['Time'], format='%H:%M:%S.%f').dt.strftime('%H:%M:%S.%f').str[:-3] # 查看结果 f1['Time']
此方法会将列的数据类型转为字符串,仅保留时间部分。
方案2:保留DateTime类型,仅修改显示方式
如果需要保留datetime64数据类型,只是显示时隐藏日期,可以设置pandas的显示选项:
# 设置显示选项,仅展示时间部分 pd.options.display.datetime_as = 'time' # 查看结果 f1['Time']
此方法不会改变数据类型,只是调整了显示效果,后续仍可对该列进行DateTime相关的操作。
内容的提问来源于stack exchange,提问作者Mo Liu
相关产品推荐
相关产品推荐

