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

python時(shí)間日期函數(shù)與利用pandas進(jìn)行時(shí)間序列處理詳解

 更新時(shí)間:2018年03月13日 11:44:48   投稿:wdc  
python標(biāo)準(zhǔn)庫包含于日期(date)和時(shí)間(time)數(shù)據(jù)的數(shù)據(jù)類型,datetime、time以及calendar模塊會被經(jīng)常用到,而pandas則可以對時(shí)間進(jìn)行序列化排序

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

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

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

給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

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

類型 說明
date 以公歷形式存儲日歷日期(年、月、日)
time 將時(shí)間存儲為時(shí)、分、秒、毫秒
datetime 存儲日期和時(shí)間
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'

#對多個時(shí)間進(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í)間解析函數(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 時(shí)(24小時(shí)制)[00,23]
%l 時(shí)(12小時(shí)制)[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時(shí)間序列基礎(chǔ)以及時(shí)間、日期處理

pandas最基本的時(shí)間序列類型就是以時(shí)間戳(時(shí)間點(diǎn))(通常以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í)間序列之間的算術(shù)運(yùn)算會自動按日期對齊

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)對于,較長的時(shí)間序列,只需傳入‘年'或‘年月'可返回對應(yīng)的數(shù)據(jù)切片

4)通過時(shí)間范圍進(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']#時(shí)間范圍進(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ù)索引的時(shí)間序列

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

2)對非唯一時(shí)間戳的數(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é)了以下4個知識點(diǎn)

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

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

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

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

相關(guān)文章

  • python寫入xml文件的方法

    python寫入xml文件的方法

    這篇文章主要介紹了python寫入xml文件的方法,涉及Python操作XML模塊實(shí)現(xiàn)針對XML文件操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • python網(wǎng)絡(luò)爬蟲精解之XPath的使用說明

    python網(wǎng)絡(luò)爬蟲精解之XPath的使用說明

    XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進(jìn)行遍歷。XPath 是 W3C XSLT 標(biāo)準(zhǔn)的主要元素,并且 XQuery 和 XPointer 都構(gòu)建于 XPath 表達(dá)之上
    2021-09-09
  • Django配置Redis使用的方法步驟

    Django配置Redis使用的方法步驟

    本文主要介紹了Django配置Redis使用的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 詳解Python牛頓插值法

    詳解Python牛頓插值法

    這篇文章主要介紹了詳解Python牛頓插值法,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • 詳解Python利用configparser對配置文件進(jìn)行讀寫操作

    詳解Python利用configparser對配置文件進(jìn)行讀寫操作

    這篇文章主要介紹了詳解Python利用configparser對配置文件進(jìn)行讀寫操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 基于Python制作三款起床鬧鐘的示例代碼

    基于Python制作三款起床鬧鐘的示例代碼

    每天上班最痛苦的事情就是早起早起早起!這是大部分上班族的痛苦,但是不上班又是不可能的啦,因?yàn)槎际菫榱烁沐X。本文用Python制作了三款有趣的鬧鐘,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • Python ConfigParser模塊的使用示例

    Python ConfigParser模塊的使用示例

    這篇文章主要介紹了Python ConfigParser模塊的使用示例,幫助大家更好的理解和學(xué)習(xí)Python ConfigParser模塊的用法,感興趣的朋友可以了解下
    2020-10-10
  • python簡單實(shí)現(xiàn)AES加密和解密

    python簡單實(shí)現(xiàn)AES加密和解密

    這篇文章主要為大家詳細(xì)介紹了python簡單實(shí)現(xiàn)AES加密和解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Win10里python3創(chuàng)建虛擬環(huán)境的步驟

    Win10里python3創(chuàng)建虛擬環(huán)境的步驟

    在本篇文章里小編給大家整理的是一篇關(guān)于Win10里python3創(chuàng)建虛擬環(huán)境的步驟內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-01-01
  • Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

    Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評論

射阳县| 本溪市| 章丘市| 灵石县| 青川县| 永靖县| 四子王旗| 玉溪市| 新宾| 酒泉市| 甘孜县| 陆川县| 曲阜市| 长宁县| 临朐县| 桃江县| 厦门市| 昌平区| 静安区| 连城县| 洛浦县| 阿勒泰市| 景洪市| 中超| 蕉岭县| 嘉荫县| 永德县| 泰兴市| 民乐县| 新竹县| 西华县| 尼勒克县| 福鼎市| 廉江市| 庆安县| 朝阳县| 乐平市| 德庆县| 望谟县| 都匀市| 蒲江县|