时间序列(time series):就是由时间构成的序列,时间序列包含三种应用场景,分别是:
特定的时刻(timestamp),也就是时间戳;
固定的日期(period),比如某年某月某日;
时间间隔(interval),每隔一段时间具有规律性;
可用Python 内置的 datetime 模块来获取当前时间,通过该模块提供的now()方法即可实现。
示例如下:
from datetime import datetime
print(datetime.now())
输出结果:
2022-10-08 14:22:32.346908
时间戳通常是一个字符序列,唯一地标识某一刻的时间。
Unix时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
示例如下:
import pandas as pd
print(pd.Timestamp('2017-03-01')) #创建时间戳
print(pd.Timestamp(1665597655,unit='s')) #将整型或浮点型表示的时间转换为时间戳
输出结果:
2017-03-01 00:00:00
2022-10-12 18:00:55
该函数主要用于生成一个固定频率的时间索引
date_range(start, end, freq)
示例如下:
import pandas as pd
#freq表示时间频率,每一周变化一次
#print(pd.date_range("2021-12-02", "2021-12-29", freq="W"))
#每60s变化一次,用.time只输出时间变化,而不输出日期信息
print(pd.date_range("18:00", "18:10", freq="60s").time)
输出结果:
[datetime.time(18, 0) datetime.time(18, 1) datetime.time(18, 2)
datetime.time(18, 3) datetime.time(18, 4) datetime.time(18, 5)
datetime.time(18, 6) datetime.time(18, 7) datetime.time(18, 8)
datetime.time(18, 9) datetime.time(18, 10)]
使用 to_datetime() 函数将字符串类型的Series列表转化为时间序列类型
示例如下:
import pandas as pd
#将字符串类型转化成时间序列类型
print(pd.to_datetime('2021-01-24'))
print(pd.to_datetime('June 3,2021'))
#将Series列表转化成时间序列类型
print(pd.to_datetime(pd.Series(['2020-02-23','may 21 ,2020',None])))
输出结果:
2021-01-24 00:00:00
2021-06-03 00:00:00
0 2020-02-23
1 2020-05-21
2 NaT
dtype: datetime64[ns]
使用set_index()将时间序列作为索引(可以对比将时间序列作为索引的输出变化)
示例如下:
time=pd.date_range(start='20211202',periods=4,freq='H')
item=['第一天','第二天','第三天','第四天']
data={
'time':time,
'item':item
}
ex=DataFrame(data=data)
print(ex)
print('='*30)
#将时间序列作为索引
ex.set_index('time',inplace=True)
print(ex)