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 代码效率的方法
Jul 03 Python
Python实现的HTTP并发测试完整示例
Apr 23 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
Python中Class类用法实例分析
Nov 12 Python
windows下python安装小白入门教程
Sep 18 Python
opencv python统计及绘制直方图的方法
Jan 21 Python
Python微信操控itchat的方法
May 31 Python
详解使用python绘制混淆矩阵(confusion_matrix)
Jul 14 Python
python re.sub()替换正则的匹配内容方法
Jul 22 Python
python ftplib模块使用代码实例
Dec 31 Python
pytorch学习教程之自定义数据集
Nov 10 Python
python编程的核心知识点总结
Feb 08 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 字符串 小常识
2009/06/05 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
python中模块查找的原理与方法详解
2017/08/11 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
Python安装selenium包详细过程
2019/07/23 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
python django生成迁移文件的实例
2019/08/31 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
python属于哪种语言
2020/08/16 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
高中数学教师求职信
2013/10/30 职场文书
生日宴会答谢词
2014/01/09 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
cf搞笑广告词
2014/03/14 职场文书
汇源肾宝广告词
2014/03/20 职场文书
放飞理想演讲稿
2014/09/09 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
机关工会工作总结2015
2015/05/26 职场文书
我在伊朗长大观后感
2015/06/16 职场文书