目录
时间日期
- 时间戳 tiimestamp:固定的时刻 -> pd.Timestamp
- 固定时期 period:比如2016年3月份,再如2015年销售额 -> pd.Period 时间间隔
- interval:由起始时间和结束时间来表示,固定时期是一个特殊的时间间隔
Python标准库中对时间日期的处理
datetime
python 标准库里提供了时间日期的处理,这个是时间日期的基础。
from datetime import datetime
from datetime import timedelta
now = datetime.now()
now
运行结果为:
datetime.datetime(2016, 4, 28, 14, 49, 51, 307000)
now.year, now.month, now.day
运行结果为:
(2016, 4, 28)
时间差
date1 = datetime(2016, 3, 20)
date2 = datetime(2016, 3, 16)
delta = date1 - date2
delta
运行结果为:
datetime.timedelta(4)
delta.days
运行结果为:
4
delta.total_seconds()
运行结果为:
345600.0
date2 + delta
运行结果为:
datetime.datetime(2016, 3, 20, 0, 0)
date2 + timedelta(4.5)
运行结果为:
datetime.datetime(2016, 3, 20, 12, 0)
字符串和 datetime 转换
date = datetime(2016, 3, 20, 8, 30)
date
运行结果为:
datetime.datetime(2016, 3, 20, 8, 30)
str(date)
运行结果为:
'2016-03-20 08:30:00'
# strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。
date.strftime('%Y-%m-%d %H:%M:%S')
运行结果为:
'2016-03-20 08:30:00'
# strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。
datetime.strptime('2016-03-20 09:30', '%Y-%m-%d %H:%M')
运行结果为:
datetime.datetime(2016, 3, 20, 9, 30)
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)
s
运行结果为:
2016-03-01 1.650889
2016-03-02 -0.328463
2016-03-03 1.674872
2016-03-04 -0.310849
type(s.index[0])
运行结果为:
pandas.tslib.Timestamp
日期范围 date_range
生成日期范围
使用pd.date_range()函数
pd.date_range('20160320', '20160331')
运行结果为