时间序列数据分析学习笔记

时间序列数据分析学习笔记

目录

时间序列的分类

时间戳(timestamp)

特定的时刻

固定周期(period)

某月或某年

时间间隔(interval)

由起始时间戳和结束时间戳表示

Python的日期和时间处理

Python的日期和时间数据类型

类型 格式
time 时间格式
date 日期格式
datetime 日期时间格式
timestamp 时间戳格式

datetime、time和calender模块是处理时间数据的主要工具

日期时间对象datetime

datetime.datetime

存储日期和细化到微秒的时间

datetime.timedelta

表示两个datetime对象的时间差

可为一个datetime对象加或减一个timedelta或其整数倍来产生一个新的datetime对象

datetime模块中包含的数据类型
说明 类型
date 以公历形式存储日历日期(年、月、日)
time 把时间存储为时、分、秒、毫秒
datetime 存储日期和时间
timedelta 表示两个datetime值之间的差(日、秒、毫秒)
tzinfo 用于存储时区信息
字符串和datetime相互转换
import datetime
#datetime表示时间的数据类型是datetime
first_day=datetime.datetime(2020,1,1)

print(first_day)
print(type(first_day))
2020-01-01 00:00:00
<class 'datetime.datetime'>
datetime类型转换成字符串
date.strftime(’%Y-%m-%d’)

可以把datetime类型转换成想要的格式的字符串

str(date)

按默认格式转换

#方法一:date.strftime('%Y-%m-%d')
#此法可以设置转换成字符串的表示格式
first_day_str=first_day.strftime('%Y-%m-%d')

print(first_day_str)
print(type(first_day_str))

#方法二:str(date)
print('\n'+str(first_day))
2020-01-01
<class 'str'>

2020-01-01 00:00:00
字符串变成datetime类型
datetime.datetime.strptime(datestr, ‘%Y/%m/%d’)

在已知格式的情况下转换日期,但每次都需要输入格式代码:比如’%Y/%m/%d’

last_day_str='2020/12/31'

#方法一:datetime.datetime.strptime(datestr, '%Y/%m/%d')
last_day=datetime.datetime.strptime(last_day_str, '%Y/%m/%d')
print(last_day)
print(type(last_day))
2020-12-31 00:00:00
<class 'datetime.datetime'>
dateutil.parser.parse()

第三方包dateutil包的parser.parse方法

dateutil能够解析大部分人类可理解的日期表示

#方法二:dateutil.parser.parse()
#DateUtil.parse方法会自动识别一些常用格式

from dateutil.parser import parse

last_day_1=parse(last_day_str)
print(last_day_1)
print(type(last_day_1))
2020-12-31 00:00:00
<class 'datetime.datetime'>

ps: 在国际场合下,日期出现在月份之前很常见,此时可传递dayfirst=True来表明这种情况

print(parse('2020/2/11',dayfirst=True))
2020-11-02 00:00:00
pd.to_datetime()

to_datetime()方法可同时转换很多种不同的日期表示格式

还可处理那些被认为是缺失值的值

#方法三:pd.to_datetime()
#可处理缺失值和空字符串

import pandas as pd

#一个日期格式不同且有缺失值的数据表
date_dic={
   'id':['a','b','c'],'date':['2020.1.1','2019/2/1',None]}
date=pd.DataFrame(date_dic)
print(date)

#转换成datetime格式
date['date']=pd.to_datetime(date['date'])
print('\n',date)

#查看缺失值                            
print('\n',date['date'][2])
print(type(date['date'][2]))
  id      date
0  a  2020.1.1
1  b  2019/2/1
2  c      None

   id       date
0  a 2020-01-01
1  b 2019-02-01
2  c        NaT

 NaT
<class 'pandas._libs.tslibs.nattype.NaTType'>

NaT(Not a Time)是panda中时间戳数据的null值

read_csv()方法中的parse_dates参数

read_csv(path,parse_dates=[要转换成日期格式的列名])

时间戳timestamp

获取当前时间戳

time.time()

import time

#获取当前时间戳
now=time.time()
now
1604297902.3029757

默认情况下,python的时间戳是以秒为单位输出的float

把具体日期转换成时间戳

time.strptime()

time.mktime()

#一个时间字符串
t1='2020-11-02 14:21:00'

#用time.strptime()把时间字符串变成struct_time
t1_struct_time=time.strptime(t1,'%Y-%m-%d %H:%M:%S')
print(t1_struct_time)
print(type(t1_struct_time))

#用time.mktime()把时间数组变成时间戳
t1_timestamp=time.mktime(t1_struct_time)
print(t1_timestamp)
print(type(t1_timestamp))
time.struct_time(tm_year=2020, tm_mon=11, tm_mday=2, tm_hour=14, tm_min=21, tm_sec=0, tm_wday=0, tm_yday=307, tm_isdst=-1)
<class 'time.struct_time'>
1604298060.0
<class 'float'>
时间戳转换成datetime日期格式

datetime.utcfromtimestamp()

import datetime

#使用datetime.utcfromtimestamp()把时间戳转换为指定时间格式
t1_datetime=datetime.datetime.utcfromtimestamp(t1_timestamp)

print(t1_datetime)
print(type(t1_datetime))
2020-11-02 06:21:00
<class 'datetime.datetime'>

Pandas的时间序列数据处理

pandas中的基础时间序列

pandas中的基础

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值