日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python的Pandas時序數據詳解_python

作者:Viva?Python ? 更新時間: 2022-05-09 編程語言

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 當前時區的名稱
% %  % 號本身

2.指定時間

datetime.datetime()中傳入對應的參數,默認按照單位從大到小指定

birthday = datetime.datetime(2001, 1, 11)  # 默認指定
print(birthday)

? 也可以通過參數指定,其中yearmonnthday三個參數必須指定

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

3.運算

(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指定單位為秒

2.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

3.運算

與`datetime`模塊運算類似,`pandas`的`Timestamp`對象之間相減可以得到`Timedelta`對象。

4.時間索引

數據表中長常使用時間作為索引,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()函數

總結

原文鏈接:https://blog.csdn.net/js010111/article/details/123315910

欄目分類
最近更新