文章插图
时间序列数据是一种在一段时间内收集的数据类型 , 它通常用于金融、经济学和气象学等领域 , 经常通过分析来了解随着时间的推移的趋势和模式
文章插图
Pandas是Python/ target=_blank class=infotextkey>Python中一个强大且流行的数据操作库 , 特别适合处理时间序列数据 。它提供了一系列工具和函数可以轻松加载、操作和分析时间序列数据 。
在本文中 , 我们介绍时间序列数据的索引和切片、重新采样和滚动窗口计算以及其他有用的常见操作 , 这些都是使用Pandas操作时间序列数据的关键技术 。
数据类型
Python
在Python中 , 没有专门用于表示日期的内置数据类型 。一般情况下都会使用datetime模块提供的datetime对象进行日期时间的操作 。
import datetime
t = datetime.datetime.now()
print(f"type: {type(t)} and t: {t}")
#type: and t: 2022-12-26 14:20:51.278230
一般情况下我们都会使用字符串的形式存储日期和时间 。所以在使用时我们需要将这些字符串进行转换成datetime对象 。
一般情况下时间的字符串有以下格式:
-
YYYY-MM-DD (e.g. 2022-01-01)
-
YYYY/MM/DD (e.g. 2022/01/01)
-
DD-MM-YYYY (e.g. 01-01-2022)
-
DD/MM/YYYY (e.g. 01/01/2022)
-
MM-DD-YYYY (e.g. 01-01-2022)
-
MM/DD/YYYY (e.g. 01/01/2022)
-
HH:MM:SS (e.g. 11:30:00)
-
HH:MM:SS AM/PM (e.g. 11:30:00 AM)
-
HH:MM AM/PM (e.g. 11:30 AM)
strptime 函数以字符串和格式字符串作为参数 , 返回一个datetime对象 。
string = '2022-01-01 11:30:09'
t = datetime.datetime.strptime(string, "%Y-%m-%d %H:%M:%S")
print(f"type: {type(t)} and t: {t}")
#type: and t: 2022-01-01 11:30:09
格式字符串如下:
文章插图
还可以使用strftime函数将datetime对象转换回特定格式的字符串表示 。
t = datetime.datetime.now()
t_string = t.strftime("%m/%d/%Y, %H:%M:%S")
#12/26/2022, 14:38:47
t_string = t.strftime("%b/%d/%Y, %H:%M:%S")
#Dec/26/2022, 14:39:32
Unix时间(POSIX时间或epoch时间)是一种将时间表示为单个数值的系统 。它表示自1970年1月1日星期四00:00:00协调世界时(UTC)以来经过的秒数 。
Unix时间和时间戳通常可以互换使用 。Unix时间是创建时间戳的标准版本 。一般情况下使用整数或浮点数据类型用于存储时间戳和Unix时间 。
我们可以使用time模块的mktime方法将datetime对象转换为Unix时间整数 。也可以使用datetime模块的fromtimestamp方法 。
#convert datetime to unix time
import time
from datetime import datetime
t = datetime.now()
unix_t = int(time.mktime(t.timetuple()))
#1672055277
#convert unix time to datetime
unix_t = 1672055277
t = datetime.fromtimestamp(unix_t)
#2022-12-26 14:47:57
使用dateutil模块来解析日期字符串获得datetime对象 。
from dateutil import parser
date = parser.parse("29th of October, 1923")
#datetime.datetime(1923, 10, 29, 0, 0)
Pandas
Pandas提供了三种日期数据类型:
1、Timestamp或DatetimeIndex:它的功能类似于其他索引类型 , 但也具有用于时间序列操作的专门函数 。
t = pd.to_datetime("29/10/1923", dayfirst=True)
#Timestamp('1923-10-29 00:00:00')
t = pd.Timestamp('2019-01-01', tz = 'Europe/Berlin')
#Timestamp('2019-01-01 00:00:00+0100', tz='Europe/Berlin')
t = pd.to_datetime(["04/23/1920", "10/29/1923"])
推荐阅读
- python要学多久(0基础学python有多难)
- 顾南亭|《向风而行》:顾南亭、程宵,谁才是你心中的职场精英
- |经常钓鱼的人,都特别有钱?渔具店主眼中的钓鱼人众生相
- 股票持有多久可以分红(股票分红需要持股多久)
- 中长线是多久(股票中的中长期是多久)
- 猪肉煮多久才熟?
- 任泉|任泉,娱乐圈中的顶级富豪
- 蒸苞米多长时间
- java怎么念(java和python的区别)
- 贫不及素中的素指的是 贫不及素