我正在使用 Pandas
to_csv
方法将我的 Dataframe 保存到 CSV 文件。数据帧的索引采用日期时间格式。索引中使用的格式为 %Y-%m-%d %H:%M:%S.%f
(2024-07-08 10:53:07.20).
大多数时候,
to_csv
保存Dataframe时没有任何错误的索引值,但有时最后一个索引值以格式%Y-%m-%d %H:%M:%S
而不是%Y-%m-%d %H:%M:%S.%f
格式存储。它跳过毫秒部分。这种情况仅发生在最后一个索引上。
这背后的原因可能是什么,我可以做什么来阻止它发生?
我厌倦了查看 to_csv 方法的代码。不过我觉得是用C写的,不太懂。
让我们假设这个例子:
df = pd.DataFrame({'col': range(4)},
index=pd.date_range('2024-01-01 01:23:45.678', periods=4))
CSV 输出:
,col
2024-01-01 01:23:45.678,0
2024-01-02 01:23:45.678,1
2024-01-03 01:23:45.678,2
2024-01-04 01:23:45.678,3
如果您的精度较低,则会自动删除毫秒:
df = pd.DataFrame({'col': range(4)}, index=pd.date_range('2024-01-01 01:23', periods=4))
CSV 输出将是:
,col
2024-01-01 01:23:00,0
2024-01-02 01:23:00,1
2024-01-03 01:23:00,2
2024-01-04 01:23:00,3
您可以使用
date_format='...'
强制使用日期格式:
df.to_csv('your_file.csv', date_format='%Y-%m-%d %H:%M:%S.%f')
输出:
,col
2024-01-01 01:23:00.000000,0
2024-01-02 01:23:00.000000,1
2024-01-03 01:23:00.000000,2
2024-01-04 01:23:00.000000,3