时间模块datetime

1.时间模块:datetime
主要需要掌握:
	datatime.date()
    datetime.datetime()
    datetime.timedelta()
    日期解析方法:parser.parse
    
1.datetime.date:date对象
	:datetime.date.today:返回今日 输出格式为date类
      datetime.date(2020,3,18):直接得到当时日期
            
2.datetime.datetime:datetime对象
	:datetime.datetime.now() :输出当前时间 年月日时分秒,可以通过str装换为字符串 格式为datetime类
      datetime.datetime(2020,3,18,13,8,52):至少输入年月日
     注意:两个时间可以直接相减得到时间差
3.datetime.timedelta:时间差
    :datetime.datetime也有now()方法
      datetime.timedelte主要用于时间差运算,相当于可被识别的时间差值,例如:
        	today = datetime.datetime.today()  # datetime.datetime也有today()方法
			yestoday = today - datetime.timedelta(1)
            # 上述会得到前一天的时间
4.parser.parse:
	作用:日期字符串转化,直接将str转化成datetime.datetime,各种格式都可以解析,但是无法解析中文
    注意:导入的模块是:
    	from dateutil.parser import parse
        t = parse('要被识别的日期字符串')
2.pandas时刻数据:timestamp
概念:时刻数据代表时间点,是pandas的数据类型,是将值与时间点相关联的最基本时间序列数据

1.pd.Teststmap()
	直接生成pandas的时刻数据 ---> 时间戳,数据类型为pandas的Timestamp
    作用类似于dateutil.parser的parse

2.pd.to_datetime()
	如果是单个时间数据,转换成pandas的时刻数据,数据类型为Timestamp,如果是多个时间数据,
    将会转换为pandas的 datetimeindex类型,例如:
    	lst_date = [ '2017-12-21', '2017-12-22', '2017-12-23']
		t3 = pd.to_datetime(lst_date)
    
    to_datetime也可以叫做多个时间数据转换时间戳索引,转换类型都是datetimeindex
    
    注意:当一组时间序列中夹杂其他格式的数据,可以使用errors参数返回,例如:
    	date3 = ['2017-2-1','2017-2-2','2017-2-3','hello world!','2017-2-5','2017-2-6']
		t3 = pd.to_datetime(date3, errors = 'ignore')
        解释:date3 中含有一个字符串 hello world 无法被解析,所以需要在转化的时候加一个参数errors
        	 类似于python中的exception。
        errors参数:
        	errors = "ingore" :不可解析时返回原始输入,结果为一般数组
            errors = "coerce" :补课扩展,如果遇到不可解析的,直接当缺失值处理,结果为datetimeindex
                
           
    
3.pandas时间戳索引:datetimeindex
核心:pd.date_range()

1.pd.datetimeindex:
	rng = pd.DatetimeIndex(['12/1/2017','12/2/2017','12/3/2017','12/4/2017','12/5/2017'])
    1.直接生成时间戳索引,支持str,datetime.datetime
    2.单个时间戳为timestamp,多个时间戳为datetimestap
    3.以datetimeindex为index的series,为timeseries,时间序列
    
2.pd.date_range():
    作用:生成日期范围
    方法:
    	1.start + end:
            rng1 = pd.date_range('1/1/2017','1/10/2017', normalize=True)
            解释:生成从2017.1.12017.1.10的日期数据,默认频率为1天,normalize是否设置成凌晨零点
        2.start/end + periods
        	rng2 = pd.date_range(start = '1/1/2017', periods = 10)
            解释:periods是偏移量,设置生成2017.1.1往后10天的数据
        	rng3 = pd.date_range(end = '1/30/2017 15:00:00', periods = 10) #增加了时、分、秒
            解释:生成最终日期为2017.1.30之前10天的数据
            
date_range参数详解:
参数作用
start开始时间
end结束时间
periods偏移量
freq频率 默认是天
tz时区
normalize时间是否归为凌晨零点
name索引对象名称
closed默认为None的情况下,左闭右闭,left则左闭右开,right则左开右闭
注意:
	date_range()默认的是日历日,也就是不区分周六周末
	bdate_range()默认频率是工作日 ,也就是周一到周五
	
日期范围:频率 ---> freq
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值