Pandas 基础(17) - to_datetime
这一节依然是关于时间的知识, 在平时的工作中, 有一个非常令我们恼火的就是时间的格式可以有很多种表达, 比如下面这张图, 我们看到同样是 2017年1月5日, 可以有很多种时间的格式, 我们需要先将格式统一才能进行下面的工作, Pandas 提供了这个函数 to_datetime().
下面通过一个例子来看下它的具体用法:
import pandas as pd
dates = ['2017-01-05', 'Jan 5, 2017', '01/05/2017', '2017.01.05', '2017/01/05','20170105'] pd.to_datetime(dates)
输出:
DatetimeIndex(['2017-01-05', '2017-01-05', '2017-01-05', '2017-01-05', '2017-01-05', '2017-01-05'], dtype='datetime64[ns]', freq=None)
来看下加上时间的效果:
dates = ['2017-01-05 2:30:00 PM', 'Jan 5, 2017 14:30:00', '01/05/2016', '2017.01.05', '2017/01/05','20170105'] pd.to_datetime(dates)
输出:
DatetimeIndex(['2017-01-05 14:30:00', '2017-01-05 14:30:00', '2016-01-05 00:00:00', '2017-01-05 00:00:00', '2017-01-05 00:00:00', '2017-01-05 00:00:00'], dtype='datetime64[ns]', freq=None)
如果时间的 list 里有无法转换的字符呢?
dates = ['2017-01-05 2:30:00 PM', 'Jan 5, 2017 14:30:00', '01/05/2016', '2017.01.05', '2017/01/05','20170105', 'ABC'] pd.to_datetime(dates)
报错了:
TypeError Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/tools/datetimes.py in _convert_listlike(arg, box, format, name, tz) 376 try: --> 377 values, tz = conversion.datetime_to_datetime64(arg) 378 return DatetimeIndex._simple_new(values, name=name, tz=tz) pandas/_libs/tslibs/conversion.pyx in pandas._libs.tslibs.conversion.datetime_to_datetime64() TypeError: Unrecognized value type: <class 'str'> During handling of the above exception, another exception occurred:
这种情况下, 我们需要给 to_datetime() 函数加个参数:
dates = ['2017-01-05 2:30:00 PM', 'Jan 5, 2017 14:30:00', '01/05/2016', '2017.01.05', '2017/01/05','20170105', 'ABC'] pd.to_datetime(dates, errors='ignore')
输出:
array(['2017-01-05 2:30:00 PM', 'Jan 5, 2017 14:30:00', '01/05/2016', '2017.01.05', '2017/01/05', '20170105', 'ABC'], dtype=object)
非时间字符被原样输出了, 还可以设置第二个参数 errors='coerce':
pd.to_datetime(dates, errors='coerce')
输出:
DatetimeIndex(['2017-01-05 14:30:00', '2017-01-05 14:30:00', '2016-01-05 00:00:00', '2017-01-05 00:00:00', '2017-01-05 00:00:00', '2017-01-05 00:00:00', 'NaT'], dtype='datetime64[ns]', freq=None)
我们知道关于时间的格式, 美国跟欧洲的格式是不一样的, 如下图所示:
如果以欧洲的时间格式表示 2019年1月5日, 应该会写成这样:
pd.to_datetime('5/1/2019')
但是默认输出是按照美国的标准:
Timestamp('2019-05-01 00:00:00')
这时, 可以加一个参数指明第一个值为 day:
pd.to_datetime('5/1/2019', dayfirst=True)
输出:
Timestamp('2019-01-05 00:00:00')
我们通常会用斜线作为年月日的分隔线, 但是其实这个分隔符是可以用任意字符代替的, 比如 $, 比如 #, 因为 Pandas 提供了一个参数 format 可以用来定义时间的表达格式, 比如下面的例子:
pd.to_datetime('5$1$2019', format='%d$%m$%Y')
输出:
Timestamp('2019-01-05 00:00:00')
用 # 做分隔符的例子:
pd.to_datetime('5#1#2019', format='%d#%m#%Y')
输出:
Timestamp('2019-01-05 00:00:00')
格林威治时间是从1970年1月1日开始累计的秒数的总和.
我们可以通过下面这个网站获取时时的格林威治时间:
Epoch & Unix Timestamp Conversion Tools
可以用 to_datetime() 函数转换格林威治时间:
t = 1551966534
pd.to_datetime(t, unit='s')
输出:
Timestamp('2019-03-07 13:48:54')
以 list 的形式传参, 以得到 list 的时间格式:
t = 1551966534
dt = pd.to_datetime([t], unit='s') dt
输出:
DatetimeIndex(['2019-03-07 13:48:54'], dtype='datetime64[ns]', freq=None)
通过 Pandas 的 view() 函数还可以将其再转换成格林威治时间:
dt.view('int64')
输出:
array([1551966534000000000])
以上, 就是关于 to_datetime() 函数的基本使用方法, enjoy~~~
转载于:https://www.cnblogs.com/rachelross/p/10493556.html
Pandas 基础(17) - to_datetime相关推荐
- pandas object转float_数据分析篇 | Pandas基础用法6【完结篇】
这是最后一篇,至此Pandas系列终于连载完了,有需要的也可以看看前面6篇,尽请收藏. 数据分析篇 | Pandas 概览 数据分析篇 | Pandas基础用法1数据分析篇 | Pandas基础用法2 ...
- Pandas基础入门知识点总结
目录 1.pandas 常用类 1.1 Series 1.1.1创建 Series 1.1.2 访问 Series 数据 1.1.3 更新.插入和删除 1.2 DataFrame 1.2.1 创建 D ...
- 数据分析:numpy和pandas基础操作详解
数据处理基础 numpy基础 1.numpy创建数组及基础属性 2.数组的特点 3.创建常见数组 4.数组数据类型 5.生成随机数 6.一维数组索引 7.布尔索引 8. 多维数组的索引 9.实际问题 ...
- pandas 第二章 pandas基础
第二章 pandas基础 import numpy as np import pandas as pd import xlrd 在开始学习前,请保证pandas的版本号不低于如下所示的版本,否则请务必 ...
- Pandas 基础知识
目录 第二章 pandas基础 一.文件的读取和写入 1. 文件读取 2. 数据写入 二.基本数据结构 1. Series 2. DataFrame 三.常用基本函数 1. 汇总函数 2. 特征统计函 ...
- 数据挖掘-3.Pandas基础
文章目录 Pandas基础 学习目标 1Pandas介绍 学习目标 1 Pandas介绍 2 为什么使用Pandas 3 小结 2 Pandas数据结构 学习目标 1.Series 1.1 Serie ...
- Datawhale pandas学习任务二:pandas基础
第二章Pandas基础 import numpy as np import pandas as pd pd.__version__ '1.1.3' 一.文件读取和写入 1.文件读取 read_csv ...
- Python数据分析——Pandas基础:dt.datetime与pivot_table()数据透视表
系列文章目录 Chapter 1:创建与探索DF.排序.子集化:Python数据分析--Pandas基础入门+代码(一) Chapter 2:聚合函数,groupby,统计分析:Python数据分析- ...
- 快乐学习Pandas入门篇:Pandas基础
Datawhale学习 作者:杨煜,Datawhale成员 寄语:本文对Pandas基础内容进行了梳理,从文件读取与写入.Series及DataFrame基本数据结构.常用基本函数及排序四个模块快速入 ...
最新文章
- SpringMVC4+JPA(Hibernate4)+Spring-data-jpa+Shiro整合
- linux sql语句传参数,Linux/Unixshell参数传递到SQL脚本
- “智慧城市”建设以前是传说,现在能体验
- php如何删除服务器图片,php如何删除服务器文件
- 深入理解磁盘文件系统之inode
- 【JSP】JSP基础学习记录(二)—— JSP的7个动作指令
- android系统级浮层,android 新手引导浮层的实现
- b站python弹幕签到_一个python脚本就可以B站查找弹幕发送者!
- java中将Fri Feb 19 17:32:34 CST 2021时间格式转为yyyy-MM-dd HH:mm:ss时间格式
- 数据分析案例-大数据相关招聘岗位可视化分析
- 笔记本固态硬盘大容量升级系统迁移(三天时间亲自实践,避坑专用)
- 快来和网红 ChatGPT 聊天!!
- WPS广告投放的优势!WPS广告投放的展现形式!
- 在手机安装 Kali Linux
- KindEditor实现多图片上传
- 封基表现继续好于大盘
- spongycastle加密算法
- [原译]模拟Office2010文件菜单的TabControl模板
- 浙江大华前端一二三面经(2021届校招)
- 基于Python的Opencv图像梯度处理
热门文章
- Android热修复更改图标,Android手写热修复(一)--ClassLoader
- python中如何导入sklearn_Python中常用包——sklearn主要模块和基本使用方法
- python中括号配对检测_使用模板匹配在Python上进行对象检测!(附代码)
- android里面的广播,Android里面的各种广播
- sp导出法线_SP导出贴图导Redshift渲染效果不同的问题
- 不要在循环,条件或嵌套函数中调用 Hook
- webpack5不要再用url-loader了
- vue3被删除的两个功能
- let声明变量时的特点
- java web简单线上游戏_有什么在线的编程游戏?