如何阻止python pandas将“00:00:00”添加到每个日期?

时间:2013-03-27 03:41:17

标签: python pandas

使用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',''))

2 个答案:

答案 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')