#导入相关库 import pandas as pd import numpy as np import time import datetime import matplotlib.pyplot as plt # 解决坐标轴刻度负号乱码 plt.rcParams['axes.unicode_minus'] = False # 解决中文乱码问题 plt.rcParams['font.sans-serif'] = ['Simhei']
在计算机中,时间实际上是用数字表示的
我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为 epoch time (纪元),记为0(1970年以前的时间 timestamp 为负数),当前时间就是相对于 epoch time 的秒数,称为 timestamp(时间戳)
timestamp 的值与时区毫无关系,因为 timestamp 一旦确定,其 UTC 时间就确定了,转换到任意时区的时间也是完全确定的,这就是为什么计算机存储的当前时间是以 timestamp 表示的,因为全球各地的计算机在任意时刻的 timestamp 都是完全相同的(假定时间已校准)
python中时间日期数据对应的符号及含义:
类型 描述 %Y 四位的年份 %y 两位的年份 %m 两位的月份 %d 两位的日期号 %H 小时,24小时制00-23 %I 小时,12小时制01-12 %M 两位的分钟00-59 %S 秒00-61,其中60,61是闰秒 %w 星期日期0-6,其中0表示星期日 %U 一年中的星期数00-53。以星期天为每周第一天,一年中第一个星期天前的日期作为第“0”周 %W 一年中的星期数00-53。以星期一为每周第一天,一年中第一个星期一前的日期作为第“0”周 %z 格式为+HHMM或者-HHMM的UTC时区偏移;如果没有时区则为空。 %F %Y-%m-%d的简写 %D %m/%d/%y的简写
-
1、时间戳 Timestamp 对象的生成
-
1.1 pd.Timestamp
-
1.2 pd.to_datetime
-
1.3 pd.date_range
限制生成时间的数量和间隔:
限制生成时间的范围和间隔:
- 间隔 freq 对应的主要取值:
- Y:年
- M:月
- D:天
- H:小时
- T:分钟
- s:秒
- 其他频率时间单位:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases
-
2、日期数据转化
将不规则的字符串日期,通过人工识别日期元素再写成 format 模式,然后通过 pd.to_datetime() 来提取时间元素,生成 datetime 对象
-
2.1 转化为指定格式:.dt.strftime()
-
2.2 提取特定的时间单位元素
-
3、日期索引对象 DatetimeIndex
DatetimeIndex 的主要作用是之一是用作 Pandas 对象的索引,使用它作为索引除了拥有普通索引对象的所有基本功能外,还拥有简化频率处理的高级时间序列方法
-
3.1 索引和切片
-
3.2 其他方法
可以通过 Timestamp 或 DateTimeIndex 访问一些时间/日期的属性
想要查看所有的属性见官方链接:
Time/Date Components (http://pandas.pydata.org/pandas-docs/stable/timeseries.html#time-date-components)
-
4、DateOffset对象
DateOffset 是做日期偏移的,它的参数与 dateutil.relativedelta 基本相同,工作方式如下
-
5、重采样 resample 对象
resample 表示根据日期维度进行数据聚合,可以按照分钟、小时、工作日、周、月、年等来作为日期维度
更多的日期维度见 Offset Aliases( http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases )