python pandas时间序列:创建时间序列
0 背景
事物的发展总是伴随着时间推进,时间序列数据贯穿于我们生活的方方面面,在金融、气象、统计和许多其他领域中,时间序列分析是一种常见的数据分析形式。本文我们仍然关注时间维度上的数据。
1 使用
导入模块
from datetime import datetime
import numpy as np
import pandas as pd
创建时间索引
pd.to_datetime(['11/12/2023', np.datetime64('2024-01-01'), datetime(2024, 3, 3)])
DatetimeIndex(['2023-11-12', '2024-01-01', '2024-03-03'], dtype='datetime64[ns]', freq=None)
DatetimeIndex
是时间索引的对象,正常由pd.to_datetime()
或pd.date_range()
生成.
通过指定开始, 结束时间, 周期, 周期频率来创建时间序列数据.
pd.date_range('2024-02-01', periods=10)
DatetimeIndex(['2024-02-01', '2024-02-02', '2024-02-03', '2024-02-04',
'2024-02-05', '2024-02-06', '2024-02-07', '2024-02-08',
'2024-02-09', '2024-02-10'],
dtype='datetime64[ns]', freq='D')
以上默认时间是天
pd.date_range('2024-02-01', '2024-02-10')
DatetimeIndex(['2024-02-01', '2024-02-02', '2024-02-03', '2024-02-04',
'2024-02-05', '2024-02-06', '2024-02-07', '2024-02-08',
'2024-02-09', '2024-02-10'],
dtype='datetime64[ns]', freq='D')
以上设置开始结束时间
pd.date_range(end='2024-02-10', periods=10)
DatetimeIndex(['2024-02-01', '2024-02-02', '2024-02-03', '2024-02-04',
'2024-02-05', '2024-02-06', '2024-02-07', '2024-02-08',
'2024-02-09', '2024-02-10'],
dtype='datetime64[ns]', freq='D')
以上设置了结束时间和周期, 默认是天
pd.bdate_range('2024-02-01', periods=10)
DatetimeIndex(['2024-02-01', '2024-02-02', '2024-02-05', '2024-02-06',
'2024-02-07', '2024-02-08', '2024-02-09', '2024-02-12',
'2024-02-13', '2024-02-14'],
dtype='datetime64[ns]', freq='B')
以上跳过了周六日, 仅体现工作日
创建时序数据
data = list(range(1, 11))
pd.Series(data, index=pd.date_range('2024-02-01', periods=10))
<unnamed> | |
---|---|
2024-02-01 | 1 |
2024-02-02 | 2 |
2024-02-03 | 3 |
2024-02-04 | 4 |
2024-02-05 | 5 |
2024-02-06 | 6 |
2024-02-07 | 7 |
2024-02-08 | 8 |
2024-02-09 | 9 |
2024-02-10 | 10 |
pd.date_range('2024-03-01', periods=5, freq='H')
pd.date_range('2024-03-01', periods=5, freq='5H')
pd.date_range('2024-03-01', periods=5, freq='D')
pd.date_range('2024-03-01', periods=5, freq='M')
pd.date_range('2024-03-01', periods=5, freq='Y')
DatetimeIndex(['2024-12-31', '2025-12-31', '2026-12-31', '2027-12-31',
'2028-12-31'],
dtype='datetime64[ns]', freq='A-DEC')
通过freq
参数设置不同周期频率的时间序列数据
数据访问
我们先创建一个时间序列数据
idx = pd.date_range('2023-12-28', periods=10, freq='D')
ts = pd.Series(range(10), index=idx)
<unnamed> | |
---|---|
2023-12-28 | 0 |
2023-12-29 | 1 |
2023-12-30 | 2 |
2023-12-31 | 3 |
2024-01-01 | 4 |
2024-01-02 | 5 |
2024-01-03 | 6 |
2024-01-04 | 7 |
2024-01-05 | 8 |
2024-01-06 | 9 |
按年筛选
ts['2023']
<unnamed> | |
---|---|
2023-12-28 | 0 |
2023-12-29 | 1 |
2023-12-30 | 2 |
2023-12-31 | 3 |
按月筛选
ts['2024-01']
<unnamed> | |
---|---|
2024-01-01 | 4 |
2024-01-02 | 5 |
2024-01-03 | 6 |
2024-01-04 | 7 |
2024-01-05 | 8 |
2024-01-06 | 9 |
按日筛选
ts['2024-01-06']
ts['2024/01/06']
ts['01/06/2024']
ts['20240106']
9
ts[datetime(2024, 1, 2)]
ts[pd.Timestamp(2024, 1, 2)]
ts[np.datetime64('2024-01-02')]
ts[pd.Timestamp('2024-01-02')]
9
按范围筛选
# 范围
ts['2023-12-29':'2024-01-02']
<unnamed> | |
---|---|
2023-12-29 | 1 |
2023-12-30 | 2 |
2023-12-31 | 3 |
2024-01-01 | 4 |
2024-01-02 | 5 |
ts['2023-12':'2024-01-02']
<unnamed> | |
---|---|
2023-12-28 | 0 |
2023-12-29 | 1 |
2023-12-30 | 2 |
2023-12-31 | 3 |
2024-01-01 | 4 |
2024-01-02 | 5 |
通过df.truncate()
截取时间序列
ts.truncate(before='2024-01-01', after='2024-01-03')
<unnamed> | |
---|---|
2024-01-01 | 4 |
2024-01-02 | 5 |
2024-01-03 | 6 |
2 其他
Pandas是python一个强大的库,用于处理和分析时间序列数据是非常方便和重要的。它提供了许多函数和方法来创建、操作和可视化时间序列数据。通过学习Pandas的这些功能,我们也可以更有效地分析时间序列数据并从中获得有价值的见解。
如果你觉得这期内容不错的话, 欢迎点赞, 在看, 关注我的微信公众号
原文始发于微信公众号(其之):python pandas时间序列:创建时间序列
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/228094.html