【发布时间】:2015-07-19 20:50:46
【问题描述】:
我需要做这个简单的事情:
dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str
但是我得到一个错误。我应该如何从datetime 转换为string?
【问题讨论】:
我需要做这个简单的事情:
dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str
但是我得到一个错误。我应该如何从datetime 转换为string?
【问题讨论】:
日期时间没有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
您可以使用任何您喜欢的方式更改日期字符串的格式:strftime() and strptime() Behavior。
更新
从0.17.0 版本开始,您可以使用dt.strftime 执行此操作
dates.dt.strftime('%Y-%m-%d')
现在可以工作了
【讨论】:
dates = p.to_datetime(p.Series(['20010101', '20010331',None]), format = '%Y%m%d') dates.apply(lambda x: x.strftime('%Y-%m-%d'))
dates.dropna().apply(lambda x: x.strftime('%Y-%m-%d'))
type(dates.df.strftime(...)) 说<class 'pandas.core.series.Series'>。您需要添加.tolist()。熊猫版本 0.25.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'
您可能需要替换“u”。
可能有一些额外的参数我应该放入前面的函数中。
【讨论】:
【讨论】:
.apply() 方法中的 lambda 函数内使用 datetime.strftime 相比,这将我的代码速度提高了 10 倍(如 @EdChum 所建议)