使用csv
将时间序列数据写入pandas.Series.to_csv
文件会将00:00:00
添加到每个日期索引,这在另一个应用程序中打开csv文件时会很烦人。
Date,price
2000-06-01 00:00:00,90.3
2000-06-02 00:00:00,92.69
2000-06-05 00:00:00,96.1
是否有一种干净/ pythonic的方式将日期值写为只有日期而没有额外00:00:00
的日期?
更普遍的是,pandas
可能有一个索引列是日期而不是时间戳吗?
编辑:对于那些可能会访问此问题的人来说,这是我提出的解决方案:
with io.StringIO() as sout:
data.to_csv(sout, header=True, index=True)
with open(fname, 'w') as fout:
fout.write(sout.getvalue().replace(' 00:00:00',''))
答案 0 :(得分:2)
在写入csv文件之前映射您的系列/数据帧:
In [8]: import pandas as pd
In [9]: import datetime
In [10]: s = pd.Series([datetime.datetime.utcnow()])
In [11]: s.map(lambda x:x.date() if isinstance(x, datetime.datetime) else x).to_csv('test.csv')
test.csv:
0,2013-03-27
答案 1 :(得分:2)
使用新版本的Pandas,您可以使用to_csv方法的date_format参数:
df.to_csv(filename, date_format='%Y%m%d')