欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python的Pandas時(shí)序數(shù)據(jù)詳解

 更新時(shí)間:2022年03月09日 10:21:40   作者:Viva?Python  
這篇文章主要為大家詳細(xì)介紹了Pandas時(shí)序數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

Pandas時(shí)序數(shù)據(jù)

前言 在數(shù)據(jù)分析中,時(shí)序數(shù)據(jù)是一類非常重要的數(shù)據(jù)。事物的發(fā)展總是伴隨著時(shí)間的推移,數(shù)據(jù)也會在各個(gè)時(shí)間點(diǎn)上產(chǎn)生。

一、python中的時(shí)間表示-datetime模塊

? Python的標(biāo)準(zhǔn)庫datetime支持創(chuàng)建和處理時(shí)間,Pandas的時(shí)間時(shí)序模塊是在datetime的基礎(chǔ)上建立的。

1.換取當(dāng)前時(shí)間

import datetime

now = datetime.datetime.now()  # 2022-03-06 18:43:49.506048

其中now的全貌如下,是一個(gè)datetime對象:

now: datetime.datetime(2022, 3, 6, 18, 37, 10, 132078)

datetime.datetime對象常用的方法:

? (1) strftime(): 對datetime對象的格式進(jìn)行轉(zhuǎn)換。使用含%的占位符書寫目標(biāo)格式,如:

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

? 各占位符的含義如下

% y 兩位數(shù)的年份表示(00 - 99)
% Y 四位數(shù)的年份表示(000 - 9999)
% m 月份(01 - 12)
% d 月內(nèi)中的一天(0 - 31)
% H 24小時(shí)制小時(shí)數(shù)(0 - 23)
% I 12小時(shí)制小時(shí)數(shù)(01 - 12)
% M 分鐘數(shù)(00 = 59)
% S 秒(00 - 59)
% a 本地簡化星期名稱
% A 本地完整星期名稱
% b 本地簡化的月份名稱
% B 本地完整的月份名稱
% c 本地相應(yīng)的日期表示和時(shí)間表示
% j 年內(nèi)的一天(001 - 366)
% p 本地A.M.或P.M.的等價(jià)符
% U 一年中的星期數(shù)(00 - 53)星期天為星期的開始
% w 星期(0 - 6),星期天為星期的開始
% W 一年中的星期數(shù)(00 - 53)星期一為星期的開始
% x 本地相應(yīng)的日期表示
% X 本地相應(yīng)的時(shí)間表示
% Z 當(dāng)前時(shí)區(qū)的名稱
% %  % 號本身

2.指定時(shí)間

datetime.datetime()中傳入對應(yīng)的參數(shù),默認(rèn)按照單位從大到小指定

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

? 也可以通過參數(shù)指定,其中year、monnth、day三個(gè)參數(shù)必須指定

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

3.運(yùn)算

(1) datetime.datetime對象之間支持減法運(yùn)算,得到的是一個(gè)datetime.timedelta對象

delta = yeaterday - birthday  # 7723 days, 0:00:00

二、 Pandas處理時(shí)序序列 

1.pd.Timestamp()

pd.Timestamp()Pandas定義事時(shí)間的主要函數(shù), 支持更豐富的定義時(shí)間的構(gòu)造方法

(1) 根據(jù)datetime.datetime對象

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

(2) 根據(jù)字符串

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

(3) 更具指定的參數(shù)

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

(4) 根據(jù)時(shí)間戳

pd.Timestamp(1646565103.114923, unit="s")  # unit指定單位為秒

2.pd.Timedelta()

pd.Timedelta()用于創(chuàng)建時(shí)間差對象,也具有與pd.Timestamp()類似的構(gòu)造方法。

(1) 根據(jù)字符串創(chuàng)建

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

(2) 指定參數(shù)創(chuàng)建

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

3.運(yùn)算

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

4.時(shí)間索引

數(shù)據(jù)表中長常使用時(shí)間作為索引,pandas支持創(chuàng)建長時(shí)間序列

?(1) pd.to_datetime()

pd.to_datetime()支持將時(shí)間對象和類時(shí)間字符串轉(zhuǎn)化為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()可以給定開始時(shí)間或者結(jié)束時(shí)間,并且指定周期數(shù)據(jù),周期頻率,會自動生成在此范圍的時(shí)間索引數(shù)據(jù):

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()函數(shù)

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!    

相關(guān)文章

最新評論