打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[pandas] 转换DatetimeIndex为一个日期字符串的Series

[pandas] 转换DatetimeIndex为一个日期字符串的Series

dm_vincent 2015-09-24 00:34:49 

 38889 
 收藏 9

分类专栏: Python pandas 文章标签: python 数据处理 pandas

版权

遇到的问题:

需要将一个DatetimeIndex转换为一个日期字符串的Series类型。

比如,有一个DatetimeIndex是这样的:

print dtiDatetimeIndex(['2015-09-21 10:30:00', '2015-09-21 11:30:00',               '2015-09-21 14:00:00', '2015-09-21 15:00:00',               '2015-09-22 10:30:00', '2015-09-22 11:30:00',               '2015-09-22 14:00:00', '2015-09-22 15:00:00'],              dtype='datetime64[ns]', freq=None, tz=None)123456

现在只需要这些数据里面的2015-09-21,2015-09-22这样的日期信息,时间信息可以省略。


解决方案:

如果Index的类型是普通的pandas.core.index.Index,那么这个问题好解决:

df.index.str.split(' ').str[0]1

然而当尝试在DatetimeIndex上使用str对象时,会抛出异常:

AttributeError: Can only use .str accessor with string values (i.e. inferred_type is 'string', 'unicode' or 'mixed')12

经过查看API,发现可以先将DatetimeIndex转换为一个类型为datetime的数组,然后对该数组进行操作得到一个numpy.ndarray,最后将这个array转化为Series即可,具体代码如下所示:

pydate_array = dti.to_pydatetime()date_only_array = np.vectorize(lambda s: s.strftime('%Y-%m-%d'))(pydate_array )date_only_series = pd.Series(date_only_array)123

最后得到的结果就是只含有日期的Series:

print date_only_series 0    2015-09-211    2015-09-212    2015-09-213    2015-09-214    2015-09-225    2015-09-226    2015-09-227    2015-09-22dtype: object

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python+pandas+时间、日期以及时间序列处理
Pandas 时间序列1 - 纵览与时间戳
Python学习教程_Python学习路线:Pandas库分析-时间序列的处理
盘点一个Pandas日期处理的问题
java日期和字符串转换
Pandas时间序列数据操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服