最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python+pandas+時間、日期以及時間序列處理方法

 更新時間:2018年07月10日 09:29:03   作者:LY_ysys629  
今天小編就為大家分享一篇python+pandas+時間、日期以及時間序列處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

先簡單的了解下日期和時間數(shù)據(jù)類型及工具

python標(biāo)準(zhǔn)庫包含于日期(date)和時間(time)數(shù)據(jù)的數(shù)據(jù)類型,datetime、time以及calendar模塊會被經(jīng)常用到。

datetime以毫秒形式存儲日期和時間,datetime.timedelta表示兩個datetime對象之間的時間差。

給datetime對象加上或減去一個或多個timedelta,會產(chǎn)生一個新的對象

from datetime import datetime
from datetime import timedelta
now = datetime.now()
now
datetime.datetime(2017, 6, 27, 15, 56, 56, 167000)
datetime參數(shù):datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
delta = now - datetime(2017,6,27,10,10,10,10)
delta
datetime.timedelta(0, 20806, 166990)
delta.days
 0
delta.seconds
 20806
delta.microseconds
 166990

只有這三個參數(shù)了!

datetime模塊中的數(shù)據(jù)類型

類型 說明
date 以公歷形式存儲日歷日期(年、月、日)
time 將時間存儲為時、分、秒、毫秒
datetime 存儲日期和時間
timedelta 表示兩個datetime值之間的差(日、秒、毫秒)

字符串和datetime的相互轉(zhuǎn)換

1)python標(biāo)準(zhǔn)庫函數(shù)

日期轉(zhuǎn)換成字符串:利用str 或strftime

字符串轉(zhuǎn)換成日期:datetime.strptime

stamp = datetime(2017,6,27)
str(stamp)
 '2017-06-27 00:00:00'
stamp.strftime('%y-%m-%d')#%Y是4位年,%y是2位年
 '17-06-27'
#對多個時間進(jìn)行解析成字符串
date = ['2017-6-26','2017-6-27']
datetime2 = [datetime.strptime(x,'%Y-%m-%d') for x in date]
datetime2
[datetime.datetime(2017, 6, 26, 0, 0), datetime.datetime(2017, 6, 27, 0, 0)]

2)第三方庫dateutil.parser的時間解析函數(shù)

from dateutil.parser import parse
parse('2017-6-27')
 datetime.datetime(2017, 6, 27, 0, 0)
parse('27/6/2017',dayfirst =True)
 datetime.datetime(2017, 6, 27, 0, 0)

3)pandas處理成組日期

pandas通常用于處理成組日期,不管這些日期是DataFrame的軸索引還是列,to_datetime方法可以解析多種不同的日期表示形式。

date
 ['2017-6-26', '2017-6-27']
import pandas as pd
pd.to_datetime(date)
 DatetimeIndex(['2017-06-26', '2017-06-27'], dtype='datetime64[ns]', freq=None)

datetime 格式定義

代碼 說明
%Y 4位數(shù)的年
%y 2位數(shù)的年
%m 2位數(shù)的月[01,12]
%d 2位數(shù)的日[01,31]
%H 時(24小時制)[00,23]
%l 時(12小時制)[01,12]
%M 2位數(shù)的分[00,59]
%S 秒[00,61]有閏秒的存在
%w 用整數(shù)表示的星期幾[0(星期天),6]
%F %Y-%m-%d簡寫形式例如,2017-06-27
%D %m/%d/%y簡寫形式

pandas時間序列基礎(chǔ)以及時間、日期處理

pandas最基本的時間序列類型就是以時間戳(時間點)(通常以python字符串或datetime對象表示)為索引的Series:

dates = ['2017-06-20','2017-06-21',\
  '2017-06-22','2017-06-23','2017-06-24','2017-06-25','2017-06-26','2017-06-27']
import numpy as np
ts = pd.Series(np.random.randn(8),index = pd.to_datetime(dates))
ts
 2017-06-20 0.788811
 2017-06-21 0.372555
 2017-06-22 0.009967
 2017-06-23 -1.024626
 2017-06-24 0.981214
 2017-06-25 0.314127
 2017-06-26 -0.127258
 2017-06-27 1.919773
 dtype: float64
ts.index
 DatetimeIndex(['2017-06-20', '2017-06-21', '2017-06-22', '2017-06-23',
   '2017-06-24', '2017-06-25', '2017-06-26', '2017-06-27'],
   dtype='datetime64[ns]', freq=None)

pandas不同索引的時間序列之間的算術(shù)運算會自動按日期對齊

ts[::2]#從前往后每隔兩個取數(shù)據(jù)
 2017-06-20 0.788811
 2017-06-22 0.009967
 2017-06-24 0.981214
 2017-06-26 -0.127258
 dtype: float64
ts[::-2]#從后往前逆序每隔兩個取數(shù)據(jù)
 2017-06-27 1.919773
 2017-06-25 0.314127
 2017-06-23 -1.024626
 2017-06-21 0.372555
 dtype: float64
ts + ts[::2]#自動數(shù)據(jù)對齊
 2017-06-20 1.577621
 2017-06-21  NaN
 2017-06-22 0.019935
 2017-06-23  NaN
 2017-06-24 1.962429
 2017-06-25  NaN
 2017-06-26 -0.254516
 2017-06-27  NaN
 dtype: float64

索引為日期的Series和DataFrame數(shù)據(jù)的索引、選取以及子集構(gòu)造

方法:

1).index[number_int]

2)[一個可以被解析為日期的字符串]

3)對于,較長的時間序列,只需傳入‘年'或‘年月'可返回對應(yīng)的數(shù)據(jù)切片

4)通過時間范圍進(jìn)行切片索引

ts
 2017-06-20 0.788811
 2017-06-21 0.372555
 2017-06-22 0.009967
 2017-06-23 -1.024626
 2017-06-24 0.981214
 2017-06-25 0.314127
 2017-06-26 -0.127258
 2017-06-27 1.919773
 dtype: float64


ts[ts.index[2]]
 0.0099673896063391908
ts['2017-06-21']#傳入可以被解析成日期的字符串
 0.37255538918121028
ts['21/06/2017']
 0.37255538918121028
ts['20170621']
 0.37255538918121028
ts['2017-06']#傳入年或年月
 2017-06-20 0.788811
 2017-06-21 0.372555
 2017-06-22 0.009967
 2017-06-23 -1.024626
 2017-06-24 0.981214
 2017-06-25 0.314127
 2017-06-26 -0.127258
 2017-06-27 1.919773
 dtype: float64


ts['2017-06-20':'2017-06-23']#時間范圍進(jìn)行切片
 2017-06-20 0.788811
 2017-06-21 0.372555
 2017-06-22 0.009967
 2017-06-23 -1.024626
 dtype: float64

帶有重復(fù)索引的時間序列

1).index.is_unique檢查索引日期是否是唯一的

2)對非唯一時間戳的數(shù)據(jù)進(jìn)行聚合,通過groupby,并傳入level = 0(索引的唯一一層)

dates = pd.DatetimeIndex(['2017/06/01','2017/06/02','2017/06/02','2017/06/02','2017/06/03'])
dates
 DatetimeIndex(['2017-06-01', '2017-06-02', '2017-06-02', '2017-06-02',
   '2017-06-03'],
   dtype='datetime64[ns]', freq=None)

dup_ts = pd.Series(np.arange(5),index = dates)
dup_ts
 2017-06-01 0
 2017-06-02 1
 2017-06-02 2
 2017-06-02 3
 2017-06-03 4
 dtype: int32

dup_ts.index.is_unique
 False
dup_ts['2017-06-02']
 2017-06-02 1
 2017-06-02 2
 2017-06-02 3
 dtype: int32

grouped = dup_ts.groupby(level=0).mean()
grouped
 2017-06-01 0
 2017-06-02 2
 2017-06-03 4
 dtype: int32

dup_df = pd.DataFrame(np.arange(10).reshape((5,2)),index = dates )
dup_df

0 1
2017-06-01 0 1
2017-06-02 2 3
2017-06-02 4 5
2017-06-02 6 7
2017-06-03 8 9

grouped_df = dup_df.groupby(level=0).mean()##針對DataFrame
grouped_df

0 1
2017-06-01 0 1
2017-06-02 4 5
2017-06-03 8 9

總結(jié)

該篇博客主要內(nèi)容:

1)字符串、日期的轉(zhuǎn)換方法

2)日期和時間的主要python,datetime、timedelta、pandas.to_datetime等

3)以時間為索引的Series和DataFrame的索引、切片

4)帶有重復(fù)時間索引時的索引,.groupby(level=0)應(yīng)用

以上這篇python+pandas+時間、日期以及時間序列處理方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python?識別錄音并轉(zhuǎn)為文字的實現(xiàn)

    Python?識別錄音并轉(zhuǎn)為文字的實現(xiàn)

    本文主要介紹了Python?識別錄音并轉(zhuǎn)為文字的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python實現(xiàn)雪花飄落效果實例講解

    python實現(xiàn)雪花飄落效果實例講解

    在本篇文章里小編給大家整理了關(guān)于python實現(xiàn)雪花飄落效果的相關(guān)實例內(nèi)容,以及代碼寫法,需要的朋友們參考下。
    2019-06-06
  • python計算機(jī)視覺實現(xiàn)全景圖像拼接示例

    python計算機(jī)視覺實現(xiàn)全景圖像拼接示例

    這篇文章主要為大家介紹了python計算機(jī)視覺實現(xiàn)全景圖像拼接示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python列表推導(dǎo)式 經(jīng)典代碼

    python列表推導(dǎo)式 經(jīng)典代碼

    這篇文章主要介紹了python列表推導(dǎo)式,文章內(nèi)容附有經(jīng)典的詳細(xì)代碼,感興趣的小伙按可以參考下面文章具體內(nèi)容
    2021-10-10
  • python獲取本機(jī)mac地址和ip地址的方法

    python獲取本機(jī)mac地址和ip地址的方法

    這篇文章主要介紹了python獲取本機(jī)mac地址和ip地址的方法,涉及Python獲取系統(tǒng)相關(guān)信息的技巧,需要的朋友可以參考下
    2015-04-04
  • Python常用模塊之datetime模塊詳解

    Python常用模塊之datetime模塊詳解

    這篇文章主要介紹了Python常用模塊之datetime模塊詳解,datetime是Python處理日期和時間的標(biāo)準(zhǔn)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Python封裝成可帶參數(shù)的EXE安裝包實例

    Python封裝成可帶參數(shù)的EXE安裝包實例

    今天小編就為大家分享一篇Python封裝成可帶參數(shù)的EXE安裝包實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • pyspark操作MongoDB的方法步驟

    pyspark操作MongoDB的方法步驟

    這篇文章主要介紹了pyspark操作MongoDB的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python實現(xiàn)選擇排序

    Python實現(xiàn)選擇排序

    選擇法也算是入門的一種排序算法,比起冒泡法,它的方法巧妙了一些,它的出發(fā)點在于“挑”,每次挑選數(shù)組的最值,與前置元素?fù)Q位,然后繼續(xù)挑選剩余元素的最值并重復(fù)操作。個人認(rèn)為選擇排序的意義不在于排序本身,而在于挑選和置換的方法,對于一些問題很有幫助。
    2017-06-06
  • VTK與Python實現(xiàn)機(jī)械臂三維模型可視化詳解

    VTK與Python實現(xiàn)機(jī)械臂三維模型可視化詳解

    這篇文章主要介紹了VTK與Python實現(xiàn)機(jī)械臂三維模型可視化詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論

通许县| 岚皋县| 石景山区| 通江县| 大余县| 萍乡市| 读书| 交城县| 德令哈市| 东海县| 夏津县| 江阴市| 梅河口市| 托克逊县| 双峰县| 延安市| 德阳市| 宕昌县| 南平市| 平南县| 蓬安县| 沙河市| 扎鲁特旗| 鸡西市| 锦州市| 通化县| 监利县| 曲阜市| 巨鹿县| 浦江县| 陕西省| 仙居县| 长葛市| 聊城市| 桐柏县| 建宁县| 黄梅县| 安西县| 齐齐哈尔市| 福建省| 叙永县|