机器学习pandas之时间序列笔记

时间戳tiimestamp:固定的时刻->pd.Timestamp

固定时期period:比如2016年3月份,再如2015年销售额->pd.Period

时间间隔interval:由起始时间和结束时间来表示,固定时期是时间间隔的一个特殊

时间日期在Pandas里的作用:分析金融数据,如股票交易数据

 1 import pandas as pd
 2 import numpy as np
 3 
 4 # 处理时间需要用到的包
 5 from datetime import datetime
 6 from datetime import timedelta
 7 
 8 now = datetime.now()  # 输出当前的时间
 9 # 例如输出 datetime.datetime(2019, 8, 23, 17, 45, 13, 291738)
10 now.year,now.month,now.day  # 输出年月日 (2019, 8, 23)
11 
12 data1 = datetime(2016, 4, 20)
13 data2 = datetime(2016, 4, 16)
14 delta = data1 - data2  # 输出datetime.timedelta(4)
15 delta.days  # 输出4
16 delta.total_seconds()  #输出间隔345600.0秒
17 data2 + delta  # 返回某天的日期datetime.datetime(2016, 4, 20, 0, 0)
18 data2 + timedelta(4.5)  #4.5天,它将输出datetime.datetime(2016, 4, 20, 12, 0)
19 
20 date = datetime(2016,3,20,8,30)
21 str(date)  # 将date转换成字符串形式'2016-03-20 08:30:00'
22 date.strftime("%Y/%m/%d %H:%M:%S")  # 格式化输出'2016/03/20 08:30:00'
23 
24 datetime.strptime('2016-03-20 09:30', '%Y-%m-%d %H:%M')
25 # 去格式化输出datetime.datetime(2016, 3, 20, 9, 30)
26 
27 dates = [datetime(2016,3,1),datetime(2016,3,2),
28              datetime(2016,3,3),datetime(2016,3,4)]
29 s = pd.Series(np.random.randn(4),index=dates)  
30 # 将时间变成索引以Series方式输出
31 type(s.index)  # 它的返回值pandas.core.indexes.datetimes.DatetimeIndex
32 type(s.index[0])  # 它的返回值pandas._libs.tslibs.timestamps.Timestamp
33 
34 pd.date_range('20160320','20160330')  # 输出时间列表,间隔频率默认为/D
35 
36 pd.date_range('20160320 16:32:38',periods=10,normalize=True)
37 # 输出10天间隔频率默认为/D即每天,采用正则化normalize=True去掉16:32:38
38 
39 pd.date_range('20160320',periods=10, freq='M')
40 # 输出每个月的月末时间,总共连续10个月,时间间隔频率是月
41 # freq=BM(每个月最后一个工作日)、W以周为频率、4H以4小时为频率
42 
43 
44 
45 
46 p = pd.Period(2010, freq='M')  # 以月份为时间段,输出Period('2010-01', 'M')
47 p+2  # 就会输输出Period('2010-03', 'M')
48 
49 pd.period_range('2016-01',periods=10,freq='M')
50 # 以月份为间隔频率输出连续10个月
51 
52 pd.period_range('2016Q1',periods=10,freq='Q')
53 # 以季节为间隔频率输出连续的10个季节
54 
55 
56 a = pd.Period(2016)  # 它的默认频段为年
57 a.asfreq('M')  # 输出Period('2016-12', 'M') 以最后一个月为时期默认频段变为月
58 a.asfreq('M',how='start')  # 时期变为1月 Period('2016-01', 'M')
59 p = pd.Period('2016-04',freq='M')  # 自定义时期Period('2016-04', 'M')
60 
61 # 
62 p.asfreq('A-DEC')  #频率转换为以年为单位12月结束 输出 Period('2016', 'A-DEC')
63 p.asfreq('A-MAR')  #介入月份变为3月份时时间就到了2017年3月份
64 
65 p = pd.Period('2016Q4','Q-JAN')  # 以一月份结束的季度
66 # 下一行可以知道2016Q4的起始时间与结束时间
67 p.asfreq('M',how='start'), p.asfreq('M',how='end')
68 
69 # 获取该季度倒数第二个工作日下午4点20分
70 (p.asfreq('B') - 1).asfreq('T') + 16 * 60 +20

猜你喜欢

转载自www.cnblogs.com/yang901112/p/11426748.html