我需要做出这么简单的事情:
dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str
但是得到一个错误。我该如何从datetime转换为string
提前致谢
答案 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)
答案 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;。
我可能会在之前的函数中添加一些其他参数。