我的编程空间,编程开发者的网络收藏夹
学习永远不晚

pd.to_datetime中时间object转换datetime实例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

pd.to_datetime中时间object转换datetime实例

时间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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

pd.to_datetime中时间object转换datetime实例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在python中将datetime转换为时间戳

这期内容当中小编将会给大家带来有关如何在python中将datetime转换为时间戳,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序
2023-06-14

C# 时间戳转换实例

本文主要介绍了C# 时间戳转换实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-19

mysql中datetime转时间戳怎么实现

在MySQL中,将DATETIME或TIMESTAMP类型的值转换为Unix时间戳(即自1970-01-01 000000 UTC以来的秒数),可以使用UNIX_TIMESTAMP()函数。此函数将日期或日期时间表达式转换为Unix时间戳。
mysql中datetime转时间戳怎么实现
2024-05-24

php时间戳转换实例代码分析

本文小编为大家详细介绍“php时间戳转换实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“php时间戳转换实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、时间戳的概念Unix时间戳,也叫做
2023-07-05

如何将WMI中的DateTime类型转换成VBS时间的函数代码

这篇文章将为大家详细讲解有关如何将WMI中的DateTime类型转换成VBS时间的函数代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有两种方法可以转换,一种是自己写个函数解析: 复制代码 代码如下:F
2023-06-08

js中各种时间格式的转换方法举例

近几天在做百度地图时,需要转换时间格式并做显示,下面这篇文章主要给大家介绍了关于js中各种时间格式的转换方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-05-18

Java实现的时间戳与date对象相互转换功能示例

本文实例讲述了Java实现的时间戳与date对象相互转换功能。分享给大家供大家参考,具体如下:一.日期转换为时间戳public long getTimestamp() throws ParseException{ Date date1 =
2023-05-31

Java中System.currentTimeMillis()计算方式与时间单位转换的示例分析

Java中System.currentTimeMillis()计算方式与时间单位转换的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、时间的单位转换1秒=1000
2023-06-22

Pandas中字符串和时间转换与格式化的实现

本文主要介绍了Pandas中字符串和时间转换与格式化的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-17

PHP中时间戳转换为日期字符串的实用技巧

PHP作为一种常用的服务器端脚本语言,经常需要处理时间戳与日期字符串之间的转换。本文将介绍一些在PHP中将时间戳转换为日期字符串的实用技巧,同时提供具体的代码示例。1. 将时间戳转换为日期字符串PHP中可以使用date()函数将时间戳转
PHP中时间戳转换为日期字符串的实用技巧
2024-03-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录