python pandas时间序列:创建时间序列

python pandas时间序列:创建时间序列

0 背景

python pandas时间序列:创建时间序列

事物的发展总是伴随着时间推进,时间序列数据贯穿于我们生活的方方面面,在金融、气象、统计和许多其他领域中,时间序列分析是一种常见的数据分析形式。本文我们仍然关注时间维度上的数据。

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(202433)])
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(111))
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(202412)]
ts[pd.Timestamp(202412)]
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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!