python3中datetime库,time库以及pandas中的时间函数区别与详解


Posted in Python onApril 16, 2020

1介绍datetime库之前 我们先比较下time库和datetime库的区别

先说下time

在 Python 文档里,time是归类在Generic Operating System Services中,换句话说, 它提供的功能是更加接近于操作系统层面的。通读文档可知,time 模块是围绕着 Unix Timestamp 进行的。

该模块主要包括一个类 struct_time,另外其他几个函数及相关常量。 需要注意的是在该模块中的大多数函数是调用了所在平台C library的同名函数, 所以要特别注意有些函数是平台相关的,可能会在不同的平台有不同的效果。另外一点是,由于是基于Unix Timestamp,所以其所能表述的日期范围被限定在 1970 - 2038 之间,如果你写的代码需要处理在前面所述范围之外的日期,那可能需要考虑使用datetime模块更好

所以 一般情况下我们用datetime库就可以解决大部分问题

2说完了datetime与time的区别 先别着急 我们再来说下datetime和pandas时间序列分析和处理Timeseries 

pandas 最基本的时间序列类型就是以时间戳(TimeStamp)为 index 元素的 Series 类型。

pandas库想必大家非常熟悉了,这里不再多说。这个方法的实用性在于,当需要批量处理时间数据时,无疑是最好用的。

pandas时序数据文件读取

dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m')
data = pd.read_csv('AirPassengers.csv', parse_dates='Month', index_col='Month',date_parser=dateparse)
print data.head()

read_csv时序参数

parse_dates:这是指定含有时间数据信息的列。正如上面所说的,列的名称为“月份”。
index_col:使用pandas 的时间序列数据背后的关键思想是:目录成为描述时间数据信息的变量。所以该参数告诉pandas使用“月份”的列作为索引。

date_parser:指定将输入的字符串转换为可变的时间数据。Pandas默认的数据读取格式是‘YYYY-MM-DD HH:MM:SS'?如需要读取的数据没有默认的格式,就要人工定义。这和dataparse的功能部分相似,这里的定义可以为这一目的服务。The default uses dateutil.parser.parser to do the conversion.

最后 ,我们看下pandas库中的to_datime函数:

pandas.to_datetime(arg,errors ='raise',utc = None,format = None,unit = None )

参数    意义
errors    三种取值,‘ignore', ‘raise', ‘coerce',默认为raise。

             'raise',则无效的解析将引发异常

             'coerce',那么无效解析将被设置为NaT

             'ignore',那么无效的解析将返回输入值

utc  布尔值,默认为none。返回utc即协调世界时。
format    格式化显示时间的格式。
unit    默认值为‘ns',则将会精确到微妙,‘s'为秒。

举个小例子:

df = pd.DataFrame({'year': [2015, 2016],
            'month': [2, 3],
            'day': [4, 5]})
pd.to_datetime(df)
#0  2015-02-04
#1  2016-03-05
#dtype: datetime64[ns]
#可以看到将字典形式时间转换为可读时间
 
2、
pd.to_datetime('13000101', format='%Y%m%d', errors='ignore')
#datetime.datetime(1300, 1, 1, 0, 0)
 
pd.to_datetime('13000101', format='%Y%m%d', errors='coerce')
#NaT
#如果日期不符合时间戳限制,则errors ='ignore'将返回原始输入,而不会报错。
#errors='coerce'将强制超出NaT的日期,返回NaT。

3最后我们来说下datetime库的最终用法

datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1.

datetime模块定义了5个类,分别是

1.datetime.date:表示日期的类

2.datetime.datetime:表示日期时间的类

3.datetime.time:表示时间的类

from datetime import date
from datetime import datetime
from datetime import time
from datetime import timedelta
from datetime import tzinfo
 
from datetime import * #不知道用啥 全部导入就可以

4.datetime.timedelta:表示时间间隔,即两个时间点的间隔

5.datetime.tzinfo:时区的相关信息

一、首先看一下datetime.date类:

date类有三个参数,datetime.date(year,month,day),返回year-month-day

方法:

1.datetime.date.ctime(),返回格式如 Sun Apr 16 00:00:00 2017

2.datetime.date.fromtimestamp(timestamp),根据给定的时间戮,返回一个date对象;datetime.date.today()作用相同

3.datetime.date.isocalendar():返回格式如(year,month,day)的元组,(2017, 15, 6)

4.datetime.date.isoformat():返回格式如YYYY-MM-DD

5.datetime.date.isoweekday():返回给定日期的星期(0-6)星期一=0,星期日=6 这里表明下python3中是从[1-7]表示的 就是本来是星期几现在显示就是星期几

6.datetime.date.replace(year,month,day):替换给定日期,但不改变原日期

7.datetime.date.strftime(format):把日期时间按照给定的format进行格式化。

8.datetime.date.timetuple():返回日期对应的time.struct_time对象

time.struct_time(tm_year=2017, tm_mon=4, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=105, tm_isdst=-1)

9.datetime.date.weekday():返回日期的星期

python中时间日期格式化符号:

%y 两位数的年份表示(00-99)

%Y 四位数的年份表示(000-9999)

%m 月份(01-12)

%d 月内中的一天(0-31)

%H 24小时制小时数(0-23)

%I 12小时制小时数(01-12)

%M 分钟数(00=59)

%S 秒(00-59) 

%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化的月份名称

%B 本地完整的月份名称

%c 本地相应的日期表示和时间表示

%j 年内的一天(001-366)

%p 本地A.M.或P.M.的等价符

%U 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%X 本地相应的时间表示

%Z 当前时区的名称

%% %号本身

二、看一下datetime的time类

time类有5个参数,datetime.time(hour,minute,second,microsecond,tzoninfo),返回08:29:30

1.datetime.time.replace()

2.datetime.time.strftime(format):按照format格式返回时间

3.datetime.time.tzname():返回时区名字

4.datetime.time.utcoffset():返回时区的时间偏移量

三、datetime的datetime类

datetime类有很多参数,datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]),返回年月日,时分秒

datetime.datetime.ctime()

datetime.datetime.now().date():返回当前日期时间的日期部分

datetime.datetime.now().time():返回当前日期时间的时间部分

datetime.datetime.fromtimestamp()

datetime.datetime.now():返回当前系统时间

datetime.datetime.replace()

datetime.datetime.strftime():由日期格式转化为字符串格式

datetime.datetime.now().strftime('%b-%d-%Y %H:%M:%S')

'Apr-16-2017 21:01:35'

datetime.datetime.strptime():由字符串格式转化为日期格式

datetime.datetime.strptime('Apr-16-2017 21:01:35', '%b-%d-%Y %H:%M:%S')
2017-04-16 21:01:35

 四、datetime的timedelta类

datetime.datetime.timedelta用于计算两个日期之间的差值,例如:

a=datetime.datetime.now()
b=datetime.datetime.now()
a
datetime.datetime(2017, 4, 16, 21, 21, 20, 871000)
b
datetime.datetime(2017, 4, 16, 21, 21, 29, 603000)
 
b-a
datetime.timedelta(0, 8, 732000)
(b-a).seconds
8

或者

time1 = datetime.datetime(2016, 10, 20)
time2 = datetime.datetime(2015, 11, 2)
 
"""计算天数差值"""
print(time1-time2).days
 
"""计算两个日期之间相隔的秒数"""
print (time1-time2).total_seconds()

到此这篇关于python3中datetime库,time库以及pandas中的时间函数区别与详解的文章就介绍到这了,更多相关python3 datetime库,time库以及pandas时间函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
利用Python开发微信支付的注意事项
Aug 19 Python
Python实现进程同步和通信的方法
Jan 02 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
对python判断ip是否可达的实例详解
Jan 31 Python
Django Rest framework认证组件详细用法
Jul 25 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
mac在matplotlib中显示中文的操作方法
Mar 06 Python
django列表筛选功能的实现代码
Mar 27 Python
Django celery异步任务实现代码示例
Nov 26 Python
python 多态 协议 鸭子类型详解
Nov 27 Python
python datetime处理时间小结
Apr 16 #Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 #Python
基于matplotlib xticks用法详解
Apr 16 #Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 #Python
解决import tensorflow as tf 出错的原因
Apr 16 #Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 #Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 #Python
You might like
强烈推荐:php.ini中文版(1)
2006/10/09 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
简述Python中的面向对象编程的概念
2015/04/27 Python
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
django连接oracle时setting 配置方法
2019/08/29 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
python dataframe NaN处理方式
2019/12/26 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
python可迭代对象去重实例
2020/05/15 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
大学新生军训自我鉴定
2014/09/18 职场文书
五好家庭申报材料
2014/12/20 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js