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

Pandas中datetime數(shù)據(jù)類型的使用

 更新時(shí)間:2023年12月28日 16:20:55   作者:小森( ﹡?o?﹡ )  
本文主要介紹了Pandas中datetime數(shù)據(jù)類型的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Python內(nèi)置了datetime對(duì)象,可以在datetime庫(kù)中找到

from datetime import datetime
now = datetime.now()
now

還可以手動(dòng)創(chuàng)建datetime

t2 = datetime(2023,4,21)
now-t2
#
datetime.timedelta(days=251, seconds=31427, microseconds=546921)

將pandas中的數(shù)據(jù)轉(zhuǎn)換成datetime

1.to_datetime函數(shù)

Timestamp是pandas用來(lái)替換python datetime.datetime的 可以使用to_datetime函數(shù)把數(shù)據(jù)轉(zhuǎn)換成Timestamp類型

import pandas as pd
ebola = pd.read_csv(r'C:\Users\Administrator\Documents\WeChat Files\wxid_mgaxcaeufcpq22\FileStorage\File\2023-12\country_timeseries.csv')
ebola.iloc[:5,:5]

從數(shù)據(jù)中看出 Date列是日期,但通過(guò)info查看加載后數(shù)據(jù)為object類型
某些場(chǎng)景下, (比如從csv文件中加載進(jìn)來(lái)的數(shù)據(jù)), 日期時(shí)間的數(shù)據(jù)會(huì)被加載成object類型, 此時(shí)需要手動(dòng)的把這個(gè)字段轉(zhuǎn)換成日期時(shí)間類型可以通過(guò)to_datetime方法把Date列轉(zhuǎn)換為Timestamp,然后創(chuàng)建新列

ebola['date_dt'] = pd.to_datetime(ebola['Date'])
ebola.info()

# 
18  date_dt              122 non-null    datetime64[ns]

2.通過(guò)Timestamp創(chuàng)建

d=pd.Timestamp(2023,12,28)
d

# Timestamp('2023-12-28 00:00:00')

3 .通過(guò)parse_dates參數(shù)指定 

ebola = pd.read_csv('data/country_timeseries.csv',parse_dates=[0])
ebola.info()
# Date列轉(zhuǎn)換為datetime類型

提取日期的各個(gè)部分

d = pd.to_datetime('2023-04-20')

# 可以看到得到的數(shù)據(jù)是Timestamp類型,通過(guò)Timestamp可以獲取年,月,日等部分
d.year
d.month
d.day

日期運(yùn)算和Timedelta

Ebola數(shù)據(jù)集中的Day列表示一個(gè)國(guó)家爆發(fā)Ebola疫情的天數(shù)。這一列數(shù)據(jù)可以通過(guò)日期運(yùn)算重建該列 疫情爆發(fā)的第一天(數(shù)據(jù)集中最早的一天)是2014-03-22。

計(jì)算疫情爆發(fā)的天數(shù)時(shí),只需要用每個(gè)日期減去這個(gè)日期即可

獲取疫情爆發(fā)的第一天 
ebola['Date'].min() 
添加新列 
ebola['outbreak_d'] = ebola['Date']-ebola['Date'].min()
查看數(shù)據(jù) 
ebola[['Date','Day','outbreak_d']].head() ebola[['Date','Day','outbreak_d']].tail()
banks['倒閉的季度'] = banks['Closing Date'].dt.quarter
banks['倒閉的年份'] = banks['Closing Date'].dt.year

.dt.quarter和.dt.year可以獲取當(dāng)前日期的季度和年份

# 類似于這個(gè)方法
d=pd.Timestamp(2023,12,30)
d.weekday()
closing_year = banks.groupby(['倒閉的年份'])['Bank Name'].count()
closing_year

# 
2000,2
2001,4
2002,11
2003,3
2004,4
2007,3
2008,25
2009,140
2010,157
2011,92

基于日期數(shù)獲取數(shù)據(jù)子集

先將第一列數(shù)據(jù)處理為datetime類型

tesla = pd.read_csv(r'C:\Users\Administrator\Documents\WeChat Files\wxid_mgaxcaeufcpq22\FileStorage\File\2023-12\TSLA.csv',parse_dates=[0])
tesla.info()
tesla.loc[(tesla.Date.dt.year==2015) & (tesla.Date.dt.month == 8)]

將索引設(shè)為Date 列,然后可以查詢2015年8月的所有數(shù)據(jù)

tesla.set_index('Date',inplace=True)
tesla['2015-08']    
tesla['ref_date'] = tesla['Date']-tesla['Date'].min()
tesla.set_index('ref_date',inplace=True)
tesla.loc['1000 days']

 日期范圍

使用date_range函數(shù)來(lái)創(chuàng)建連續(xù)的日期范圍

head_range = pd.date_range(start='2014-12-31',end='2015-01-05')
head_range  # 使用date_range函數(shù)創(chuàng)建日期序列時(shí),可以傳入一個(gè)參數(shù)freq,默認(rèn)情況下freq取值為D,表示日期范圍內(nèi)的值是逐日遞增的

# 
DatetimeIndex(['2014-12-31', '2015-01-01', '2015-01-02', '2015-01-03',
               '2015-01-04', '2015-01-05'],
              dtype='datetime64[ns]', freq='D')

包含日期的數(shù)據(jù)集中,并非每一個(gè)都包含固定頻率。比如在Ebola數(shù)據(jù)集中,日期并沒有規(guī)律 ebola.iloc[:,:5]

從上面的數(shù)據(jù)中可以看到,缺少2015年1月1日,2014年3月23日,如果想讓日期連續(xù),可以創(chuàng)建一個(gè)日期范圍來(lái)為數(shù)據(jù)集重建索引。

在freq傳入?yún)?shù)的基礎(chǔ)上,可以做一些調(diào)整
# 隔一個(gè)工作日取一個(gè)工作日
pd.date_range('2023-01-01','2023-01-07',freq='2B')
freq傳入的參數(shù)可以傳入多個(gè)
#2023年每個(gè)月的第一個(gè)星期四
pd.date_range('2023-01-01','2023-12-31',freq='WOM-1THU')
#每個(gè)月的第三個(gè)星期五
pd.date_range('2023-01-01','2023-12-31',freq='WOM-3FRI')

 datetime類型案例

加載數(shù)據(jù)
crime = pd.read_csv('data/crime.csv',parse_dates=['REPORTED_DATE'])
查看數(shù)據(jù)
crime.info()
設(shè)置報(bào)警時(shí)間為索引
crime = crime.set_index('REPORTED_DATE')
crime.head()
crime.loc['2016-05-12']
查看某一段時(shí)間的犯罪記錄
crime.loc['2015-3-4':'2016-1-1'].sort_index()
時(shí)間段可以包括小時(shí)分鐘
crime.loc['2015-3-4 22':'2016-1-1 23:45:00'].sort_index()查詢凌晨?jī)牲c(diǎn)到五點(diǎn)的報(bào)警記錄
crime.between_time('2:00', '5:00', include_end=False)
查看發(fā)生在某個(gè)時(shí)刻的犯罪記錄
crime.at_time('5:47')
在按時(shí)間段選取數(shù)據(jù)時(shí),可以將時(shí)間索引排序,排序之后再選取效率更高
crime_sort = crime.sort_index()
%timeit crime.loc['2015-3-4':'2016-1-1']
%timeit crime_sort.loc['2015-3-4':'2016-1-1']

(%timeit是ipython的魔術(shù)函數(shù),可用于計(jì)時(shí)特定代碼段)

總結(jié):

Pandas中,datetime64用來(lái)表示時(shí)間序列類型

時(shí)間序列類型的數(shù)據(jù)可以作為行索引,對(duì)應(yīng)的數(shù)據(jù)類型是DatetimeIndex類型

datetime64類型可以做差,返回的是Timedelta類型

到此這篇關(guān)于Pandas中datetime數(shù)據(jù)類型的使用的文章就介紹到這了,更多相關(guān)Pandas datetime數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python和PyYAML讀取yaml配置文件數(shù)據(jù)

    基于Python和PyYAML讀取yaml配置文件數(shù)據(jù)

    這篇文章主要介紹了基于Python和PyYAML讀取yaml配置文件數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python匿名函數(shù)之lambda函數(shù)詳解

    python匿名函數(shù)之lambda函數(shù)詳解

    這篇文章主要介紹了python匿名函數(shù)之lambda函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • tensorflow安裝成功import tensorflow 出現(xiàn)問題

    tensorflow安裝成功import tensorflow 出現(xiàn)問題

    這篇文章主要介紹了tensorflow安裝成功import tensorflow 出現(xiàn)問題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Linux添加Python?path方法及修改環(huán)境變量的三種方法

    Linux添加Python?path方法及修改環(huán)境變量的三種方法

    這篇文章主要介紹了Linux添加Python?path方法及修改環(huán)境變量的三種方法,Linux 下設(shè)置環(huán)境變量有三種方法,一種用于當(dāng)前終端,一種用于當(dāng)前用戶,一種用于所有用戶,本文對(duì)每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python根據(jù)當(dāng)前日期取去年同星期日期

    Python根據(jù)當(dāng)前日期取去年同星期日期

    最近做項(xiàng)目,遇到這樣的業(yè)務(wù)開發(fā)需求,需要對(duì)比當(dāng)前時(shí)間段和去年同星期的時(shí)間段的數(shù)據(jù),下面小編通過(guò)實(shí)例代碼給大家分享Python根據(jù)當(dāng)前日期取去年同星期日期,需要的朋友參考下
    2019-04-04
  • 關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié)

    關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié)

    這篇文章主要介紹了關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié),Series序列,是一種一維的結(jié)構(gòu),類似于一維列表和ndarray中的一維數(shù)組,但是功能比他們要更為強(qiáng)大,Series由兩部分組成:索引index和數(shù)值values,本篇對(duì)其用法做出總結(jié)
    2023-07-07
  • python基礎(chǔ)之入門必看操作

    python基礎(chǔ)之入門必看操作

    下面小編就為大家?guī)?lái)一篇python基礎(chǔ)之入門必看操作。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • python 實(shí)用工具狀態(tài)機(jī)transitions

    python 實(shí)用工具狀態(tài)機(jī)transitions

    這篇文章主要介紹了python 實(shí)用工具狀態(tài)機(jī)transitions的使用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    這篇文章主要為大家詳細(xì)介紹了使用python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python實(shí)現(xiàn)監(jiān)控一個(gè)程序的運(yùn)行情況

    Python實(shí)現(xiàn)監(jiān)控一個(gè)程序的運(yùn)行情況

    這篇文章主要為大家介紹了Python如何實(shí)現(xiàn)監(jiān)控一個(gè)程序的運(yùn)行情況,然后視情況將進(jìn)程殺死并重啟,文中的示例代碼簡(jiǎn)潔易懂,需要的可以參考一下
    2023-05-05

最新評(píng)論

涟源市| 平原县| 通州区| 大新县| 阿巴嘎旗| 保康县| 富源县| 怀柔区| 乌苏市| 阿尔山市| 太仆寺旗| 密山市| 延庆县| 贵阳市| 鹤山市| 文成县| 洮南市| 开封市| 黄山市| 清原| 太原市| 浪卡子县| 图片| 丹寨县| 启东市| 清苑县| 修文县| 广灵县| 偃师市| 柞水县| 惠东县| 安泽县| 固始县| 吴忠市| 张家界市| 民丰县| 普宁市| 丹凤县| 柳河县| 罗山县| 凯里市|