pandas to_json - 返回时间戳,单位为天而不是秒

时间:2016-08-09 18:27:41

标签: python date datetime pandas

我有一个pandas系列,其中包含从日 - 月 - 年字符串

创建的日期时间对象
series = pd.Series(['3/11/2000', '3/12/2000', '3/13/2000'])
series = pd.to_datetime(series)

print series
0   2000-03-11
1   2000-03-12
2   2000-03-13
dtype: datetime64[ns]

稍后,在使用这些日期时间对象后,我想以日 - 月 - 年格式将此系列转换为json。但是,to_json使用HH:MM:SS等返回日期时间

json = series.to_json(orient='index', date_format='iso', date_unit = 's')
print json
{"0":"2000-03-11T00:00:00Z","1":"2000-03-12T00:00:00Z","2":"2000-03-13T00:00:00Z"}

是否有任何内置和优雅的方式只返回日期

{"0":"2000-03-11","1":"2000-03-12","2":"2000-03-13"}

没有HH:MM:SS等。我得到的最接近的(没有转换为字符串并编写要解析的函数)是to_json的date_unit参数,尽管最大的时间单位看似是秒。

有人可以帮忙吗?感谢

2 个答案:

答案 0 :(得分:6)

这样的东西?

In [64]: series.dt.date.astype(str).to_json()
Out[64]: '{"0":"2000-03-11","1":"2000-03-12","2":"2000-03-13"}'

答案 1 :(得分:3)

这不是很优雅,但你可以尝试转换为字符串之前到json:

>>> series.apply(lambda x : x.strftime('%Y-%m-%d')).to_json()
'{"0":"2000-03-11","1":"2000-03-12","2":"2000-03-13"}'