datetime to string with python pandas

时间:2015-05-08 20:23:12

标签: python datetime pandas

我需要做出这么简单的事情:

dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str

但是得到一个错误。我该如何从datetime转换为string

提前致谢

3 个答案:

答案 0 :(得分:44)

日期时间没有str访问者,您也无法dates.astype(str),您可以致电apply并使用datetime.strftime

In [73]:

dates = pd.to_datetime(pd.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.apply(lambda x: x.strftime('%Y-%m-%d'))
Out[73]:
0    2001-01-01
1    2001-03-31
dtype: object

您可以使用您喜欢的任何内容更改日期字符串的格式:https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

<强>更新

从版本0.17.0开始,您可以使用dt.strftime

执行此操作
dates.dt.strftime('%Y-%m-%d')

现在可以正常工作

答案 1 :(得分:14)

从版本17.0开始,您可以使用dt访问者格式化

dates.dt.strftime('%Y-%m-%d')

Reference

答案 2 :(得分:3)

pandas函数可以应用于pandas数据框中的DateTime索引。

date = dataframe.index #date is the datetime index
date = dates.strftime('%Y-%m-%d') #this will return you a numpy array, element is string.
dstr = date.tolist() #this will make you numpy array into a list

列表中的元素:

u'1910-11-02'

您可能需要替换&#39; u&#39;。

我可能会在之前的函数中添加一些其他参数。