亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

pandas的to_datetime時(shí)間轉(zhuǎn)換使用及學(xué)習(xí)心得

 更新時(shí)間:2019年08月11日 15:09:20   作者:不論如何未來很美好  
這篇文章主要給大家介紹了關(guān)于pandas的to_datetime時(shí)間轉(zhuǎn)換使用及學(xué)習(xí)心得的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用pandas具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

昨天在網(wǎng)賽中做了一道題,雖然是外國人的Englis題目,但是內(nèi)容很有學(xué)習(xí)的價(jià)值,值得仔細(xì)的學(xué)習(xí),今天就把我所收獲的一部分記錄下來。其一:做個(gè)學(xué)習(xí)的資料記錄。其二:分享出來,供大家參考。

(收獲了對處理大數(shù)據(jù)的又一次認(rèn)識!?。。?br />

這是一道將DataFrame的日期數(shù)據(jù)轉(zhuǎn)換為python能認(rèn)識的題目。這里重點(diǎn)講一下to_datetime的部分使用。

首先說一下:

  • 1/17/07 has the format "%m/%d/%y"
  • 17-1-2007 has the format "%d-%m-%Y"

這是一部分的時(shí)間轉(zhuǎn)換格式,通過以上的格式,你可以將DataFrame中的時(shí)間格式轉(zhuǎn)換為以下等python格式:

0 2007-03-02
1 2007-03-22
2 2007-04-06
3 2007-04-14
4 2007-04-15
Name: date_parsed, dtype: datetime64[ns]

看見沒有dtype:datetime64,這是轉(zhuǎn)換過后的形式,其實(shí)你可以將原數(shù)據(jù)使用dtype查看列,來看它的格式。你會發(fā)現(xiàn)它是object形式的。這里說一下。這個(gè)object格式一般是python用來記錄可變化的兌現(xiàn)的格式。這個(gè)格式它并不能認(rèn)出是時(shí)間格式,盡管我們一眼就能看出(人和機(jī)器的區(qū)別在此)。

data = pd.read_csv('path') #這里我們得到data數(shù)據(jù)
data['date'].heade() #查看一下日期列的樣子
0 01/02/1965
1 01/04/1965
2 01/05/1965
3 01/08/1965
4 01/09/1965
Name: Date, dtype: object

可以看出它為object格式,并非日期格式。

data['date_parsed'] = pd.to_datetime(data['date'],format="%m/%d/%y")

上面為 我們按python格式轉(zhuǎn)換時(shí)間,并添加到新的一列中去。

dara['date_parsed'].head()  #查看一下結(jié)果
0  1965-01-02
1  1965-01-04
2  1965-01-05
3  1965-01-08
4  1965-01-09
 
Name: data_parsed, dtype: datetime64[ns]

可以看到不論形式還是類型都改變了,當(dāng)然這只是一點(diǎn)皮毛,如果只是這里點(diǎn),這個(gè)博客意義不大

其實(shí)在使用上面語句轉(zhuǎn)換時(shí)間是,并不是這么順利:

/opt/conda/lib/python3.6/site-packages/pandas/core/tools/datetimes.py in _convert_listlike(arg, box, format, name, tz)
  271           try:
  272             result = array_strptime(arg, format, exact=exact,
--> 273                         errors=errors)
  274           except tslib.OutOfBoundsDatetime:
  275             if errors == 'raise':
 
pandas/_libs/tslibs/strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()
 
ValueError: time data '1975-02-23T02:58:41.000Z' does not match format '%m/%d/%Y' (match)

一部分錯誤信息如上。

面對加載都要加載半天的數(shù)據(jù)出了錯誤,你真的是無助的,如果要去看數(shù)據(jù)怕是要看一天。

當(dāng)然有人會說不是有錯誤信息嗎?當(dāng)然我知道,但是一但當(dāng)信息量大了以后,當(dāng)時(shí)是茫然的?;税胩觳檎移渌麜r(shí)間的轉(zhuǎn)換方式。無果。于是靜下心來發(fā)現(xiàn)問題??梢钥闯鏊f有一下格式不能轉(zhuǎn)換。

'1975-02-23T02:58:41.000Z'

所以我又換了一種格式將時(shí)分秒都匹配了,又提醒年月日不匹配。反復(fù)的驗(yàn)證后發(fā)現(xiàn)應(yīng)該是原數(shù)據(jù)有問題,部分時(shí)間并不是同意的格式。哈哈發(fā)現(xiàn)問題了,我們可以修改了。

我第一次的修改方式為:

data['over_long'] = data['Date'].apply(len)  #添加一列記錄沒行時(shí)間的長度
data.loc[data['over_long'] > 10]  #輸出大于正常數(shù)據(jù)的行  這里會發(fā)現(xiàn)缺失有那么幾行在作怪?。?!
normal_dates = data.loc[data['over_long'] < 11]  #篩選出正常數(shù)據(jù)
normal_dates = normal_dates.copy()    #拷貝
normal_dates['data_parsed'] = pd.to_datetime(normal_dates['Date'],format='%m/%d/%Y')  #再次轉(zhuǎn)換時(shí)間,發(fā)現(xiàn)沒有報(bào)錯了 哈哈
normal_dates['data_parsed'].head(10)  #輸出查看沒問題的

以上是我的第一次解決方法。

后續(xù)在別人的指導(dǎo)下了解了其他的幾種更好的方法。(畢竟我刪除數(shù)據(jù)的方式不好)

第一種和第二種:

data['date_parsed'] = pd.to_datetime(data['Date'], format = "%m/%d/%Y", errors = 'coerce')
data['date_parsed'] = pd.to_datetime(data['Date'],infer_datetime_format=True)

兩個(gè)都能實(shí)現(xiàn)我試了一下。畢竟對to_datetime不太熟悉所以犯了錯。

OK!全部完成了。但是我想說的以上都不是最重要的。

最重要的是一種經(jīng)驗(yàn)的掌握。當(dāng)你面對大量的數(shù)據(jù)時(shí)千萬不要緊張,它們也是小數(shù)據(jù)構(gòu)成的,只要冷靜下來,你就能想到方法來解決。這才是我想說的!?。∨c君共勉。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • python導(dǎo)入時(shí)小括號大作用

    python導(dǎo)入時(shí)小括號大作用

    這篇文章主要介紹了python導(dǎo)入時(shí)小括號的大作用,非常的簡單實(shí)用,希望這個(gè)小技巧能夠幫到大家
    2017-01-01
  • python如何調(diào)用java類

    python如何調(diào)用java類

    在本篇文章里小編給大家分享了關(guān)于python調(diào)用java類的方法,需要的朋友們可以參考下。
    2020-07-07
  • Pytest運(yùn)行方式及參數(shù)使用示例詳解

    Pytest運(yùn)行方式及參數(shù)使用示例詳解

    這篇文章主要介紹了Pytest運(yùn)行方式及參數(shù)使用詳細(xì)教程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • django定期執(zhí)行任務(wù)(實(shí)例講解)

    django定期執(zhí)行任務(wù)(實(shí)例講解)

    下面小編就為大家?guī)硪黄猟jango定期執(zhí)行任務(wù)(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python ARP掃描與欺騙實(shí)現(xiàn)全程詳解

    Python ARP掃描與欺騙實(shí)現(xiàn)全程詳解

    這篇文章主要介紹了Python 實(shí)現(xiàn)ARP掃描與欺騙,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Python提取PDF中的圖片的實(shí)現(xiàn)示例

    Python提取PDF中的圖片的實(shí)現(xiàn)示例

    本文主要介紹了Python提取PDF中的圖片的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python使用matplotlib庫生成隨機(jī)漫步圖

    python使用matplotlib庫生成隨機(jī)漫步圖

    這篇文章主要為大家詳細(xì)介紹了使用Python的matplotlib庫生成隨機(jī)漫步圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python+wxPython實(shí)現(xiàn)合并多個(gè)文本文件

    Python+wxPython實(shí)現(xiàn)合并多個(gè)文本文件

    在?Python?編程中,我們經(jīng)常需有時(shí)候,我們可能需要將多個(gè)文本文件合并成一個(gè)文件,要處理文本文件,本文就來介紹下如何使用?wxPython?模塊編寫一個(gè)簡單的程序,能夠讓用戶選擇多個(gè)文本文件,感興趣的可以了解下
    2023-08-08
  • pycharm 將python文件打包為exe格式的方法

    pycharm 將python文件打包為exe格式的方法

    今天小編就為大家分享一篇pycharm 將python文件打包為exe格式的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實(shí)現(xiàn)簡易凱撒密碼的示例代碼

    Python實(shí)現(xiàn)簡易凱撒密碼的示例代碼

    密碼的使用最早可以追溯到古羅馬時(shí)期,《高盧戰(zhàn)記》有描述愷撒曾經(jīng)使用密碼來傳遞信息,即所謂的“愷撒密碼”。本文將利用Python實(shí)現(xiàn)簡易的凱撒密碼,感興趣的可以了解一下
    2022-09-09

最新評論