时间日期
- 时间戳 tiimestamp:固定的时刻 -> pd.Timestamp
- 固定时期 period:比如 2016年3月份,再如2015年销售额 -> pd.Period
- 时间间隔 interval:由起始时间和结束时间来表示,固定时期是时间间隔的一个特殊
时间日期在 Pandas 里的作用
- 分析金融数据,如股票交易数据
- 分析服务器日志
复习Python的datetime模块
python 标准库里提供了时间日期的处理。这个是时间日期的基础。
from datetime import datetime
from datetime import timedelta
now = datetime.now()
now.year, now.month, now.day
时间差
date1 = datetime(2016, 3, 20)
date2 = datetime(2016, 3, 16)
delta = date1 - date2
delta
delta.days
delta.total_seconds()
date2 + delta
date2 + timedelta(4.5)
字符串和 datetime 转换
date = datetime(2016, 3, 20, 8, 30)
str(date) # 将日期转换成字符串形式
# 日期格式化,Y代表用4位数的年份,y代表两位数的年份
date.strftime('%Y-%m-%d %H:%M:%S')
# 指定格式,将字符串形式转换成datetime形式
datetime.strptime('2016-03-20 09:30', '%Y-%m-%d %H:%M')
Pandas 里的时间序列
Pandas 里使用 Timestamp 来表达时间
dates = [datetime(2016, 3, 1), datetime(2016, 3, 2), datetime(2016, 3, 3), datetime(2016, 3, 4)]
s = pd.Series(np.random.randn(4), index=dates)
日期范围
生成日期范围
pd.date_range('20160320', '20160331')
pd.date_range(start='20160320', periods=10)
规则化时间戳
# normalize = True时后面的16:23:32会省略
pd.date_range(start='2016-03-20 16:23:32', periods=10, normalize=True)
时间频率
星期
pd.date_range(start='20160320', periods=10, freq='W')
月
pd.date_range(start='20160320', periods=10, freq='M')
每个月最后一个工作日组成的索引
pd.date_range(start='20160320', periods=10, freq='BM')
小时
pd.date_range(start='20160320', periods=10, freq='4H')
时期及算术运算
pd.Period 表示时期,比如几日,月或几个月等。比如用来统计每个月的销售额&