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

Pandas時間序列:時期(period)及其算術運算詳解

 更新時間:2020年02月25日 10:38:48   作者:BQW_  
今天小編就為大家分享一篇Pandas時間序列:時期(period)及其算術運算詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

import pandas as pd
import numpy as np

一、時間類型及其在python中對應的類型

時間戳–timestamp

時間間隔–timedelta

時期–period

二、時期

時期表示的是時間區(qū)間,比如數(shù)日、數(shù)月、數(shù)季、數(shù)年等

1.定義一個Period

p = pd.Period(2007,freq='A-DEC') #表示以12月作為結束的一整年,這里表示從2007-01-01到2017-12-31的全年
p

Period('2007', 'A-DEC')

2.通過加減整數(shù)可以實現(xiàn)對Period的移動

p+5

Period('2012', 'A-DEC')

p-2

Period('2005', 'A-DEC')

3.如果兩個Period對象擁有相同頻率,則它們的差就是它們之間的單位數(shù)量

pd.Period('2014',freq='A-DEC') - p

4.period_range函數(shù)可用于創(chuàng)建規(guī)則的時期范圍

rng = pd.period_range('1/1/2000','6/30/2000',freq='M') #創(chuàng)建從2001-01-01到2000-06-30所有月份的Period
pd.Series(np.random.randn(6),index=rng)

2000-01 -1.125053
2000-02 1.035250
2000-03 -0.796830
2000-04 0.381285
2000-05 0.533522
2000-06 -2.733462
Freq: M, dtype: float64

5.PeriodIndex類的構造函數(shù)允許直接使用一組字符串表示一段時期

values = ['2001Q3','2002Q2','2003Q1']
index = pd.PeriodIndex(values,freq='Q-DEC')
index

PeriodIndex(['2001Q3', '2002Q2', '2003Q1'], dtype='period[Q-DEC]', freq='Q-DEC')

三、時期的頻率轉換-asfreq

1.通過asfreq可以將頻率轉換

p = pd.Period('2007',freq='A-DEC') # 2007年1月1日到2007年12月31日

p.asfreq('M',how='start') # 將評率為年(20070101-20071231)轉換頻率為月201701

Period('2007-01', 'M')

p.asfreq('M',how='end') # 將評率為年(20070101-20071231)轉換頻率為月201712

Period('2007-12', 'M')

2.不同頻率經(jīng)過asfreq轉換后的結果不同

p = pd.Period('2007',freq='A-JUN') # 2006年7月1日到2007年6月30日

p.asfreq('D','start')

Period('2006-07-01', 'D')

p.asfreq('D','end')

Period('2007-06-30', 'D')

3.從高頻率轉換為低頻率時,超時期(較大的時期)是由子時期(較小的時期)的位置絕對的

p = pd.Period('2007-08','M')

p.asfreq('A-JUN') # 200708對于頻率A-JUN是屬于2008年度的

Period('2008', 'A-JUN')

4.對于PeriodIndex或TimeSeries的頻率轉換方式相同

rng = pd.period_range('2006','2009',freq='A-DEC')

ts = pd.Series(np.random.randn(len(rng)),index=rng)
ts

2006 -1.202858
2007 -1.132553
2008 0.902564
2009 0.800859
Freq: A-DEC, dtype: float64

ts.asfreq('M',how='start')

2006-01 -1.202858
2007-01 -1.132553
2008-01 0.902564
2009-01 0.800859
Freq: M, dtype: float64

ts.asfreq('B',how='end')

2006-12-29 -1.202858
2007-12-31 -1.132553
2008-12-31 0.902564
2009-12-31 0.800859
Freq: B, dtype: float64

四、按季度計算的時期頻率

許多季度型數(shù)據(jù)會涉及“財年末”的概念,通常是一年12個月中某月的最后一個工作日或日歷日。因此,時間“2012Q4”根據(jù)財年末的不同會有不同的含義。pandas支持12種可能的季度型頻率,即Q-JAN到Q-DEC。

1.財政年度和季度

p = pd.Period('2012Q4',freq='Q-JAN') # Q-JAN是指1月末的工作日是財政年末
p

Period('2012Q4', 'Q-JAN')

p.asfreq('D','start')

Period('2011-11-01', 'D')

p.asfreq('D','end')

Period('2012-01-31', 'D')

2.該季度倒數(shù)第二個工作日的下午4點

p4pm = (p.asfreq('B','e')-1).asfreq('T','s')+16*60
p4pm.to_timestamp()

Timestamp('2012-01-30 16:00:00')

3.相同的運算可以應用到TimeSeries

rng = pd.period_range('2011Q3','2012Q4',freq='Q-JAN')
ts = pd.Series(np.arange(len(rng)),index=rng)
ts
2011Q3 0
2011Q4 1
2012Q1 2
2012Q2 3
2012Q3 4
2012Q4 5
Freq: Q-JAN, dtype: int32
new_rng = (rng.asfreq('B','e')-1).asfreq('T','s')+16*60
ts.index = new_rng.to_timestamp()
ts
2010-10-28 16:00:00 0
2011-01-28 16:00:00 1
2011-04-28 16:00:00 2
2011-07-28 16:00:00 3
2011-10-28 16:00:00 4
2012-01-30 16:00:00 5
dtype: int32

五、Timestamp與Period互相轉換

1.通過to_period方法,可以將時間戳(timestamp)索引的Series和DataFrame對象轉換為以時期(period)索引

rng = pd.date_range('1/1/2000',periods=3,freq='M')
ts = pd.Series(np.random.randn(3),index=rng)
ts
2000-01-31 -0.501502
2000-02-29 -1.299610
2000-03-31 -0.705091
Freq: M, dtype: float64

pts = ts.to_period()
pts

2000-01 -0.501502
2000-02 -1.299610
2000-03 -0.705091
Freq: M, dtype: float64

2.將timestamp轉換為period是運行重復的

rng = pd.date_range('1/29/2000',periods=6,freq='D')
ts2 = pd.Series(np.random.randn(6),index=rng)
ts2.to_period('M')
2000-01 1.368367
2000-01 -0.256934
2000-01 0.417902
2000-02 -1.065910
2000-02 -1.694405
2000-02 0.665471
Freq: M, dtype: float64

3.to_timestamp可以將period轉換為timestamp

pts.to_timestamp(how='end')

2000-01-31 -0.501502
2000-02-29 -1.299610
2000-03-31 -0.705091
Freq: M, dtype: float64

六、通過數(shù)組創(chuàng)建PeriodIndex

某些數(shù)據(jù)集中時間信息是分開在多個列存放的,可以通過PeriodIndex的參數(shù)將這些列組合在一起

year = [2017,2017,2017,2017,2018,2018,2018,2018]
quarter = [1,2,3,4,1,2,3,4]
index = pd.PeriodIndex(year=year,quarter=quarter,freq='Q-DEC')
index
PeriodIndex(['2017Q1', '2017Q2', '2017Q3', '2017Q4', '2018Q1', '2018Q2',
    '2018Q3', '2018Q4'],
   dtype='period[Q-DEC]', freq='Q-DEC')

以上這篇Pandas時間序列:時期(period)及其算術運算詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python通過kerberos安全認證操作kafka方式

    Python通過kerberos安全認證操作kafka方式

    這篇文章主要介紹了Python通過kerberos安全認證操作kafka方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Window10上Tensorflow的安裝(CPU和GPU版本)

    Window10上Tensorflow的安裝(CPU和GPU版本)

    這篇文章主要介紹了Window10上Tensorflow的安裝(CPU和GPU版本),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    ROI區(qū)域又叫感興趣區(qū)域。在機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下
    2021-12-12
  • python列表中remove()函數(shù)的使用方法詳解

    python列表中remove()函數(shù)的使用方法詳解

    這篇文章主要給大家介紹了關于python列表中remove()函數(shù)的使用,以及Python列表的remove方法的注意事項,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • Python Web編程之WSGI協(xié)議簡介

    Python Web編程之WSGI協(xié)議簡介

    這篇文章主要介紹了Python Web編程之WSGI協(xié)議,簡單說明了WSGI的概念、功能并結合實例形式分析了Gunicorn和uWSGI相關實現(xiàn)技巧,需要的朋友可以參考下
    2018-07-07
  • Python開發(fā)中常用操作方法代碼匯總筆記

    Python開發(fā)中常用操作方法代碼匯總筆記

    Python具有易學、易用、易擴展、可移植性強等特點,被廣泛應用于數(shù)據(jù)分析、人工智能、Web開發(fā)、自動化測試等領域。Python在使用過程中也會遇到一些常見技術問題,本文匯總Python開發(fā)中實用操作方法代碼筆記。
    2023-06-06
  • 一篇文章入門Python生態(tài)系統(tǒng)(Python新手入門指導)

    一篇文章入門Python生態(tài)系統(tǒng)(Python新手入門指導)

    原文寫于2011年末,雖然文中關于Python 3的一些說法可以說已經(jīng)不成立了,但是作為一篇面向從其他語言轉型到Python的程序員來說,本文對Python的生態(tài)系統(tǒng)還是做了較為全面的介紹
    2015-12-12
  • Python3實現(xiàn)的旋轉矩陣圖像算法示例

    Python3實現(xiàn)的旋轉矩陣圖像算法示例

    這篇文章主要介紹了Python3實現(xiàn)的旋轉矩陣圖像算法,涉及Python3列表遍歷、切片轉換、矩陣運算等相關操作技巧,需要的朋友可以參考下
    2019-04-04
  • python機器學習實戰(zhàn)之K均值聚類

    python機器學習實戰(zhàn)之K均值聚類

    這篇文章主要為大家詳細介紹了python機器學習實戰(zhàn)之K均值聚類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python如何實現(xiàn)單向鏈表及單向鏈表的反轉

    python如何實現(xiàn)單向鏈表及單向鏈表的反轉

    這篇文章主要介紹了python如何實現(xiàn)單向鏈表及單向鏈表的反轉,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03

最新評論