Pandas時間序列基礎(chǔ)詳解(轉(zhuǎn)換,索引,切片)
時間序列的類型:
時間戳:具體的時刻
固定的時間區(qū)間:例如2007年的1月或整個2010年
時間間隔:由開始時間和結(jié)束時間表示,時間區(qū)間可以被認為是間隔的特殊情況
實驗時間和消耗時間:每個時間是相對于特定開始時間的時間的量度,(例如自從被放置在烤箱中每秒烘烤的餅干的直徑)
日期和時間數(shù)據(jù)的類型及工具
datetime模塊中的類型:
date 使用公歷日歷存儲日歷日期(年,月,日) time 將時間存儲為小時,分鐘,秒,微秒 datetime 存儲日期和時間 timedelta 表示兩個datetime值之間的差(如日,秒,微秒) tzinfo 用于存儲時區(qū)信息的基本類型 from datetime import datetime now = datetime.now() now.year #當(dāng)時年份 now.month #當(dāng)前月份 now.day #當(dāng)前天 now.time() #當(dāng)前時間 datetime.time(12, 27, 41, 303676) 兩個時間戳運算得到一個timedelta(時間差)類型
日期時間差 timedelta類型
from datetime import timedelta start = datetime(2019,2,5) start + timedelta(20) #默認為天 datetime.datetime(2019, 2, 25, 0, 0)
字符串和datetime互相轉(zhuǎn)換
date.strptime方法將字符串轉(zhuǎn)換為時間
values = '2019-8-9' datetime.strptime(values,'%Y-%m-%d') #是在已知格式的前提下轉(zhuǎn)換日期的好方式 datetime.datetime(2019, 8, 9, 0, 0) datestrs = ['2019-8-7','2019-8-9'] [datetime.strptime(values,'%Y-%m-%d') for values in datestrs] [datetime.datetime(2019, 8, 7, 0, 0), datetime.datetime(2019, 8, 9, 0, 0)]
更為通用的日期轉(zhuǎn)換格式
from dateutil.parser import parse
parse(values)
datetime.datetime(2019, 8, 9, 0, 0)
parse('8,5,2018',dayfirst=True) #dayfirst參數(shù) 第一個元素是天
datetime.datetime(2018, 5, 8, 0, 0)
pd.to_datetime() 用于軸索引或DataFrame的列
pd.to_datetime(datestrs)
DatetimeIndex(['2019-08-07', '2019-08-09'], dtype='datetime64[ns]', freq=None)
更為簡單的轉(zhuǎn)換
datetime(2019,1,1)
datetime.datetime(2019, 1, 1, 0, 0)
時間序列的算術(shù)運算(在日期上自動對齊)
index = pd.date_range('3/3/2018',periods=20)
ts = pd.Series(np.random.randn(20),index=index)
ts
2018-03-03 0.611591
2018-03-04 0.119168
2018-03-05 0.514390
2018-03-06 1.010600
2018-03-07 0.181763
2018-03-08 -0.290964
2018-03-09 0.252927
2018-03-10 -1.645692
2018-03-11 -0.500014
2018-03-12 -1.247355
ts1 = ts[::2]
2018-03-03 0.611591
2018-03-05 0.514390
2018-03-07 0.181763
2018-03-09 0.252927
2018-03-11 -0.500014
2018-03-13 -0.122307
2018-03-15 0.361237
2018-03-17 -1.894853
2018-03-19 -1.608989
2018-03-21 1.274982
Freq: 2D, dtype: float64
ts + ts1
2018-03-03 1.223183
2018-03-04 NaN
2018-03-05 1.028781
2018-03-06 NaN
2018-03-07 0.363526
2018-03-08 NaN
2018-03-09 0.505853
2018-03-10 NaN
2018-03-11 -1.000028
2018-03-12 NaN
2018-03-13 -0.244613
2018-03-14 NaN
2018-03-15 0.722473
2018-03-16 NaN
2018-03-17 -3.789707
2018-03-18 NaN
2018-03-19 -3.217979
2018-03-20 NaN
2018-03-21 2.549963
2018-03-22 NaN
ts.index.dtype #數(shù)據(jù);類型在納秒級的分辨率下存儲時間戳
dtype('<M8[ns]')
ts.index[0] #datetimeindex中的標量值是一個時間戳(timestamp)
Timestamp('2018-03-03 00:00:00', freq='D')
時間序列的索引,選擇,子集
時間序列的索引
ts = pd.Series(np.random.randn(1000),index = pd.date_range('1/1/2016',periods=1000))
s['2018-6'] #時間序列的索引 也可用ts.loc[]
2018-06-01 1.371843
2018-06-02 -0.356041
2018-06-03 0.111452
2018-06-04 0.325222
2018-06-05 -0.863138
2018-06-06 -0.115909
2018-06-07 0.062894
2018-06-08 0.223712
時間序列的切片
ts['2018-9-23':] #時間序列的切片 2018-09-23 0.005519 2018-09-24 -1.374038 2018-09-25 1.769112 2018-09-26 -0.000306 Freq: D, dtype: float64 ts.truncate(before='2018-9-24') #使用truncate方法向后切片 2018-09-24 -1.374038 2018-09-25 1.769112 2018-09-26 -0.000306 Freq: D, dtype: float64 ts.truncate(after='2016-1-4') #向前切片 2016-01-01 -1.776334 2016-01-02 -0.488550 2016-01-03 -1.299889 2016-01-04 -1.883413 Freq: D, dtype: float64
含有重復(fù)索引的時間序列的分組處理
index = pd.DatetimeIndex(['1/1/2017','1/1/2017','1/2/2017','1/3/2017']) dup_ta = pd.Series(np.arange(4),index=index) dup_ta 2017-01-01 0 2017-01-01 1 2017-01-02 2 2017-01-03 3 dtype: int32 dup_ta.groupby(level=0).mean()
以上這篇Pandas時間序列基礎(chǔ)詳解(轉(zhuǎn)換,索引,切片)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch實現(xiàn)網(wǎng)絡(luò)部分層的固定不進行回傳更新問題及思路詳解
這篇文章主要介紹了Pytorch實現(xiàn)網(wǎng)絡(luò)部分層的固定不進行回傳更新,實現(xiàn)思路就是利用tensor的requires_grad,每一個tensor都有自己的requires_grad成員,值只能為True和False,具體內(nèi)容詳情跟隨小編一起看看吧2021-08-08
python bmp轉(zhuǎn)換為jpg 并刪除原圖的方法
今天小編就為大家分享一篇python bmp轉(zhuǎn)換為jpg 并刪除原圖的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python實現(xiàn)隨機生成有效手機號碼及身份證功能示例
這篇文章主要介紹了Python實現(xiàn)隨機生成有效手機號碼及身份證功能,結(jié)合完整實例形式分析了Python基于手機號與身份證算法實現(xiàn)隨機手機號及身份證的生成功能,涉及Python日期、隨機數(shù)、文件讀取等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
Python數(shù)據(jù)分析numpy文本數(shù)據(jù)讀取索引切片實例詳解
這篇文章主要為大家介紹了Python數(shù)據(jù)分析numpy文本數(shù)據(jù)讀取索引切片實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
淺談在JupyterNotebook下導(dǎo)入自己的模塊的問題
這篇文章主要介紹了淺談在JupyterNotebook下導(dǎo)入自己的模塊的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python實現(xiàn)列表刪除重復(fù)元素的三種常用方法分析
這篇文章主要介紹了Python實現(xiàn)列表刪除重復(fù)元素的三種常用方法,結(jié)合實例形式對比分析了Python針對列表元素的遍歷、判斷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11

