时间object转换datetime实例

首先说一下:

  • 1/17/07 has the format “%m/%d/%y”
  • 17-1-2007 has the format “%d-%m-%Y”

这是一部分的时间转换格式,通过以上的格式,你可以将DataFrame中的时间格式转换为以下等python格式:

0   2007-03-02
1   2007-03-22
2   2007-04-06
3   2007-04-14
4   2007-04-15
Name: date_parsed, dtype: datetime64[ns]

dtype:datetime64,这是转换过后的形式,其实你可以将原数据使用dtype查看列,来看它的格式。你会发现它是object形式的。这个object格式一般是python用来记录可变化的兑现的格式。这个格式并不能认出是时间格式,尽管我们一眼就能看出,但机器不行。

data = pd.read_csv('path')    # 获取data数据
data['date'].head()  # 查看一下日期列
0    01/02/1965
1    01/04/1965
2    01/05/1965
3    01/08/1965
4    01/09/1965
Name: Date, dtype: object

可以看出它为object格式,并非日期格式。

data['date_parsed'] = pd.to_datetime(data['date'], format="%m/%d/%y")

上面我们按python格式转换时间,并添加到新的一列中去。

dara['date_parsed'].head()    #查看一下结果
1
0    1965-01-02
1    1965-01-04
2    1965-01-05
3    1965-01-08
4    1965-01-09
 
Name: data_parsed, dtype: datetime64[ns]

处理过程中可能会出现问题:

/opt/conda/lib/python3.6/site-packages/pandas/core/tools/datetimes.py in _convert_listlike(arg, box, format, name, tz)
    271                     try:
    272                         result = array_strptime(arg, format, exact=exact,
--> 273                                                 errors=errors)
    274                     except tslib.OutOfBoundsDatetime:
    275                         if errors == 'raise':
 
pandas/_libs/tslibs/strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()
 
ValueError: time data '1975-02-23T02:58:41.000Z' does not match format '%m/%d/%Y' (match)

反复的验证后发现应该是原数据有问题,部分时间数据格式有误:

比如: 1965-01-02,这是正常时间格式,但是有的时间数据是:1965-01-028、1969-011-26 等情况,时间数据长度超过正常的len=10.

因此我们需要数据预处理,清洗数据。

数据预处理

方式一

添加一列记录为每行时间的长度,apply(len):传入len()函数,处理Date列数据。

data['over_long'] = data['Date'].apply(len)  # 添加一列记录为每行时间的长度,apply(len):传入len()函数
data.loc[data['over_long'] > 10]    # 输出大于正常数据的行   这里会发现缺失有那么几行在作怪!!!

正常处理:

normal_dates = data.loc[data['over_long'] < 11]    # 筛选出正常数据
normal_dates = normal_dates.copy()        # 拷贝
normal_dates['data_parsed'] = pd.to_datetime(normal_dates['Date'],format='%m/%d/%Y')    # 再次转换时间,没有报错
normal_dates['data_parsed'].head(10)    # 输出查看没问题的数据

方式二

data['date_parsed'] = pd.to_datetime(data['Date'], format = "%m/%d/%Y", errors = 'coerce')

errors = 'coerce'

Pandas数据转换时遇到不能转换的数据转为NaN的参数设置 errors='coerce'

Pandas 提供了一个可选的参数 errors,传入 errors='coerce',Pandas 遇到不能转换的数据就会赋值为 NaN(Not a Number)

在这里,Pandas 遇到不能转化的时间数据后会赋值 Nan 并跳过。

方式三

data['date_parsed'] = pd.to_datetime(data['Date'], infer_datetime_format=True)

infer_datetime_format: boolean类型, default False

如果设定为True并且 parse_dates 可用,那么pandas将尝试转换为日期类型,如果可以转换,转换方法并解析。在某些情况下会快5~10倍。

在这里,Pandas 遇到不能转化的时间数据后会跳过。

参考:

Link

Link

到此这篇关于pd.to_datetime中时间object转换datetime实例的文章就介绍到这了,更多相关pd.to_datetime 时间转换datetime内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

pd.to_datetime中时间object转换datetime实例的更多相关文章

  1. 如何利用Java使用AOP实现数据字典转换

    这篇文章主要介绍了如何利用Java使用AOP实现数据字典转换,AOP也是我们常说的面向切面编程,AOP在我们开发过程中应用也比较多,在这里我们就基于AOP来实现一个数据字典转换的案例

  2. 微信小程序实现根据日期和时间排序功能

    这篇文章主要为大家详细介绍了微信小程序实现根据日期和时间排序功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Jsp结合XML+XSLT将输出转换为Html格式

    我们知道XMLXSLT就可以直接输出到支持XML的浏览器上,如IE5.0以上,但是,我们还要考虑到有不少浏览器不直接支持XML,在这种情况下,我们需要在服务器上进行转换成html输出到浏览器,这种临时过渡办法恐怕要在一段时间内一直要使用.使用Jsp加上tablib标识库,我们可以完成这种转换。

  4. 关于导入excel时js转换时间的正确方式

    这篇文章主要给大家介绍了关于导入excel时js转换时间的正确方式,以及js读取excel中日期格式转换问题的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  5. Python执行时间计算方法以及优化总结

    python脚本运行时间远远大于python脚本中统计的计算时间,所以本文将为大家分享就几个Python执行时间计算方法以及优化,感兴趣的可以了解一下

  6. 簡繁体转换的class

    //Designer:MagicJerry//====直接轉換文字串的使用方法========include;$obj=newCCharset;$big5="這是一個big5的文字串";$tgb=$obj->Big5_Gb;echo$tgb;//===>$tgb為轉換好的gb碼字串$tbig5=$obj->Gb_Big5;echo$tbig5;//又被轉回來了:big5//======================================?http://要轉碼的網頁url或檔案//example

  7. 使用Java实现大小写转换实例代码

    最近在开发项目中遇到一个比较好用的方法,那就是对字符串中的字母大小进行转换,所以下面这篇文章主要给大家介绍了关于如何使用Java实现大小写转换的相关资料,需要的朋友可以参考下

  8. iOS获取当前时间和当前时间戳的方法

    这篇文章主要介绍了iOS获取当前时间和当前时间戳,获取当前时间戳有两种方法以秒位单位的,下面通过本文给大家分享iOS获取当前时间和当前时间戳的方法,一起看看吧

  9. PHP数组Key强制类型转换实现原理解析

    这篇文章主要介绍了PHP数组Key强制类型转换实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  10. jquery对象和DOM对象的任意相互转换

    这篇文章主要介绍了jquery对象和DOM对象的任意相互转换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部