2

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',''))
4

2 回答 2

2

在新版本的 Pandas 中,您可以使用to_csv方法的 date_format 参数:

df.to_csv(filename, date_format='%Y%m%d')
于 2014-04-01T23:33:27.433 回答
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')

测试.csv:

0,2013-03-27
于 2013-03-27T08:40:33.757 回答