You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pandas.DataFrame.to_csv写入含毫秒的pandas.Timestamp?

问题

我有一个包含pandas.Timestamp对象列的DataFrame,示例时间戳如下:

pandas.Timestamp('2019-12-10T17:16:49.467000000')

我想通过pandas.DataFrame.to_csv的date_format参数控制输出格式,让生成的CSV文件只保留毫秒而非完整的微秒。我尝试了以下写法:

df.to_csv('!test.csv', sep='\t', index=False, date_format='%d.%m.%Y %H:%M:%S.%f')

但得到的结果是10.12.2019 17:16:49.467000,我需要的格式是10.12.2019 17:16:49.467。

解决方案

因为date_format参数中的%f会固定输出六位微秒数,无法直接通过该参数截断到三位毫秒,你可以通过以下方式实现需求:

方法:先转换时间列格式再导出

先把Timestamp列格式化为带六位微秒的字符串,再通过字符串切片去掉后三位零,最后导出CSV:

# 替换成你的时间列名称
df['time_column'] = df['time_column'].dt.strftime('%d.%m.%Y %H:%M:%S.%f').str[:-3]
df.to_csv('!test.csv', sep='\t', index=False)

如果原时间戳的微秒部分存在非零的后三位,还可以先将时间戳四舍五入到毫秒级别,再进行切片处理:

df['time_column'] = df['time_column'].dt.round('ms').dt.strftime('%d.%m.%Y %H:%M:%S.%f').str[:-3]
df.to_csv('!test.csv', sep='\t', index=False)

内容的提问来源于stack exchange,提问作者Владимир Ивонин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:50:09