IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Pandas时序数据 -> 正文阅读

[Python知识库]Pandas时序数据

Pandas时序数据

前言
  • 在数据分析中,时序数据是一类非常重要的数据。事物的发展总是伴随着时间的推移,数据也会在各个时间点上产生。
一、python中的时间表示-datetime模块

? Python的标准库datetime支持创建和处理时间,Pandas的时间时序模块是在datetime的基础上建立的。

  1. 换取当前时间
import datetime

now = datetime.datetime.now()  # 2022-03-06 18:43:49.506048
  • 其中now的全貌如下,是一个datetime对象:
now: datetime.datetime(2022, 3, 6, 18, 37, 10, 132078)

? datetime.datetime对象常用的方法:

? (1) strftime(): 对datetime对象的格式进行转换。使用含%的占位符书写目标格式,如:

newForm = now.strftime("%Y-%m-%d (%H:%M:%S)")
# 2022-03-06 (18:52:31)  为字符串类型

? 各占位符的含义如下

% y 两位数的年份表示(00 - 99)
% Y 四位数的年份表示(000 - 9999)
% m 月份(01 - 12)
% d 月内中的一天(0 - 31)
% H 24小时制小时数(0 - 23)
% I 12小时制小时数(01 - 12)
% M 分钟数(00 = 59)
% S 秒(00 - 59)
% a 本地简化星期名称
% A 本地完整星期名称
% b 本地简化的月份名称
% B 本地完整的月份名称
% c 本地相应的日期表示和时间表示
% j 年内的一天(001 - 366)
% p 本地A.M.或P.M.的等价符
% U 一年中的星期数(00 - 53)星期天为星期的开始
% w 星期(0 - 6),星期天为星期的开始
% W 一年中的星期数(00 - 53)星期一为星期的开始
% x 本地相应的日期表示
% X 本地相应的时间表示
% Z 当前时区的名称
% %  % 号本身
  1. 指定时间
  • datetime.datetime()中传入对应的参数,默认按照单位从大到小指定
birthday = datetime.datetime(2001, 1, 11)  # 默认指定
print(birthday)

? 也可以通过参数指定,其中yearmonnthday三个参数必须指定

yeaterday = datetime.datetime(year=2022, month=3, day=5)
print(yeaterday)
  1. 运算

    (1) datetime.datetime对象之间支持减法运算,得到的是一个datetime.timedelta对象

    delta = yeaterday - birthday  # 7723 days, 0:00:00
    
二、 Pandas处理时序序列
  1. pd.Timestamp()
  • pd.Timestamp()Pandas定义事时间的主要函数, 支持更丰富的定义时间的构造方法

    (1) 根据datetime.datetime对象

    now = pd.Timestamp(datetime.datetime.now())
    print(now)  # 2022-03-06 19:07:07.253402
    

    (2) 根据字符串

    today = pd.Timestamp("2022-03-06")
    print(today)  # 2022-03-06 00:00:00
    

    (3) 更具指定的参数

    yesterday = pd.Timestamp(2022, 3, 5)  # 2022-03-05 00:00:00
    now = pd.Timestamp("now")  # 2022-03-06 19:13:56.507604
    
    

    (4) 根据时间戳

    pd.Timestamp(1646565103.114923, unit="s")  # unit指定单位为秒
    
  1. pd.Timedelta()

    pd.Timedelta()用于创建时间差对象,也具有与pd.Timestamp()类似的构造方法。

    (1) 根据字符串创建

    oneDay = pd.Timedelta("1 days")  # 1 days 00:00:00
    duration = pd.Timedelta("2 days 2 hours")  # 1 days 02:00:00
    

    (2) 指定参数创建

    oneDay = pd.Timedelta(days=1)  # 1 days 00:00:00
    
    
  2. 运算

与`datetime`模块运算类似,`pandas`的`Timestamp`对象之间相减可以得到`Timedelta`对象。
  1. 时间索引
  • 数据表中长常使用时间作为索引,pandas支持创建长时间序列

?
(1) pd.to_datetime()

  • pd.to_datetime()支持将时间对象和类时间字符串转化为DatetimeIndex对象。

    index = pd.to_datetime(["03/06/2022", datetime.datetime.now()])
    print(index)
    # DatetimeIndex(['2022-03-06 00:00:00', '2022-03-06 19:29:44.855267'], dtype='datetime64[ns]', freq=None)
    

? (2) pd.date_range()

? pd.date_range()可以给定开始时间或者结束时间,并且指定周期数据,周期频率,会自动生成在此范围的时间索引数据:

index = pd.date_range(start="2022-01-01", periods=10)
print(index)
# DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
               '2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08',
               '2022-01-09', '2022-01-10'],
              dtype='datetime64[ns]', freq='D')

? 如果要跳过休息日可以使用pd.bdate_range()函数

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:24:55  更:2022-03-08 22:25:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/31 3:30:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码