时间序列数据分析

类型 使用说明
date 日期(年、月、日)
time 时间(时、分、秒、毫秒)
datetime 日期和时间
timedelta 两个datetime的差(日、秒、毫秒)
txinfo 用于存储时区信息的基本类型

导包

import datetime

datetime

datetime.date(2020, 1, 1)

datetime.date(2020, 1, 1)

datetime.time(11, 11, 11)

datetime.time(11, 11, 11)

# 查看当前时间
datetime.datetime.now()

datetime.datetime(2020, 7, 6, 16, 12, 44, 196492)

now = datetime.datetime.now()
birth = datetime.datetime(2000, 1, 1)
delta = now - birth
print (delta)
new = birth + datetime.timedelta(120)
print (new)

7492 days, 16:16:15.651126
2000-04-30 00:00:00

数据转换

类型 描述
%Y 四位的年份
%y 两位的年份
%m 两位的月份
%d 两位的日期
%H 小时,24制
%I 小时,12制
%M 两位的分钟
%S 两位的秒
%W 每年的第几周
%F %M-%m-%d的简写(2020-7-06)
%D %m/%d/%y的简写(20/7/06)```python
datetime.datetime.now().strftime("%y-%m-%d %H:%M:%S")

‘20-07-06 16:34:20’

datetime.datetime.strptime('2020-01-01 0:0:0', '%Y-%m-%d %H:%M:%S')

datetime.datetime(2020, 1, 1, 0, 0)

重采样、降采样、升采样

Pandas中的resample函数用于各种频率转换工作。

参数 描述
freq 转换频率
axies=0 重采样的轴
closed=“right” 在降采样中,设置个时间段哪端是闭合的
label=“right” 在降采样中,如何设置聚合值的标签
loffset=None 设置时间偏移
kind=None 聚合到时期,默认为时间序列的索引类型
convention 升采样采用的约定(start或end),默认为end
rule effect
B 工作日频率
C 定制营业日频率(实验)
D 日历日频率
W 每周一次的频率
M 月末频率
BM 业务月末频度
CBM 定制业务月底频度
MS 月启动频率
BMS 业务月开始频率
CBMS 自定义业务月启动频率
Q 四分之一端频率
BQ 业务季度末频率
QS 四分之一起动频率
BQS 季度开始频率
A 年末频率
BA 营业年度结束频率
AS 作为年初频率
BAS 业务年度开始频率
BH 营业时间
H 每小时的频率
T 每分钟的频率
S 年代第二频率
L milliseonds
U 微秒
N 纳秒
w = pd.date_range(start='2000/1/1',periods=100, freq='D')
y = pd.Series(np.arange(100), index=w)
print (y.head(8))
ps = y.resample('M').mean()
print (ps)

在这里插入图片描述

# 降低采样频率为三分钟
index = pd.date_range('1/1/2000', periods=9, freq='T')
series = pd.Series(range(9), index=index)
series

在这里插入图片描述

# 降低采样频率为三分钟,但是每个标签使用right来代替left。请注意,bucket中值的用作标签。
series.resample('3T').sum()

在这里插入图片描述

# 降低采样频率为三分钟,但是关闭right区间。
series.resample('3T', label='right').sum()

在这里插入图片描述

# 增加采样频率到30秒 
series.resample('3T', label='right', closed='right').sum()

在这里插入图片描述

# 增加采样频率到30S,使用pad方法填充nan值
series.resample('30S').asfreq()[0:5] #select first 5 rows

在这里插入图片描述

# 增加采样频率到30S,使用bfill方法填充nan值。
series.resample('30S').pad()[0:5]

在这里插入图片描述

# 通过apply运行一个自定义函数 
series.resample('30S').bfill()[0:5]

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41754907/article/details/107151098