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

pd.to_datetime中時間object轉(zhuǎn)換datetime實例

 更新時間:2022年06月16日 14:39:21   作者:ZSYL  
本文主要介紹了pd.to_datetime中時間object轉(zhuǎn)換datetime實例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

時間object轉(zhuǎn)換datetime實例

首先說一下:

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

這是一部分的時間轉(zhuǎn)換格式,通過以上的格式,你可以將DataFrame中的時間格式轉(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ù)據(jù)使用dtype查看列,來看它的格式。你會發(fā)現(xiàn)它是object形式的。這個object格式一般是python用來記錄可變化的兌現(xiàn)的格式。這個格式并不能認(rèn)出是時間格式,盡管我們一眼就能看出,但機器不行。

data = pd.read_csv('path')    # 獲取data數(shù)據(jù)
data['date'].head()  # 查看一下日期列
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)換時間,并添加到新的一列中去。

dara['date_parsed'].head()    #查看一下結(jié)果
1
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]

處理過程中可能會出現(xiàn)問題:

/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)

反復(fù)的驗證后發(fā)現(xiàn)應(yīng)該是原數(shù)據(jù)有問題,部分時間數(shù)據(jù)格式有誤:

比如: 1965-01-02,這是正常時間格式,但是有的時間數(shù)據(jù)是:1965-01-028、1969-011-26 等情況,時間數(shù)據(jù)長度超過正常的len=10.

因此我們需要數(shù)據(jù)預(yù)處理,清洗數(shù)據(jù)。

數(shù)據(jù)預(yù)處理

方式一

添加一列記錄為每行時間的長度,apply(len):傳入len()函數(shù),處理Date列數(shù)據(jù)。

data['over_long'] = data['Date'].apply(len)  # 添加一列記錄為每行時間的長度,apply(len):傳入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)換時間,沒有報錯
normal_dates['data_parsed'].head(10)    # 輸出查看沒問題的數(shù)據(jù)

方式二

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

errors = 'coerce'

Pandas數(shù)據(jù)轉(zhuǎn)換時遇到不能轉(zhuǎn)換的數(shù)據(jù)轉(zhuǎn)為NaN的參數(shù)設(shè)置 errors='coerce'

Pandas 提供了一個可選的參數(shù) errors,傳入 errors='coerce',Pandas 遇到不能轉(zhuǎn)換的數(shù)據(jù)就會賦值為 NaN(Not a Number)

在這里,Pandas 遇到不能轉(zhuǎn)化的時間數(shù)據(jù)后會賦值 Nan 并跳過。

方式三

data['date_parsed'] = pd.to_datetime(data['Date'], infer_datetime_format=True)

infer_datetime_format: boolean類型, default False

如果設(shè)定為True并且 parse_dates 可用,那么pandas將嘗試轉(zhuǎn)換為日期類型,如果可以轉(zhuǎn)換,轉(zhuǎn)換方法并解析。在某些情況下會快5~10倍。

在這里,Pandas 遇到不能轉(zhuǎn)化的時間數(shù)據(jù)后會跳過。

參考:

Link

Link

到此這篇關(guān)于pd.to_datetime中時間object轉(zhuǎn)換datetime實例的文章就介紹到這了,更多相關(guān)pd.to_datetime 時間轉(zhuǎn)換datetime內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Flask SocketIO實現(xiàn)動態(tài)繪圖的示例詳解

    Flask SocketIO實現(xiàn)動態(tài)繪圖的示例詳解

    Flask-SocketIO 是基于 Flask 的一個擴展,用于簡化在 Flask 應(yīng)用中集成 WebSocket 功能,本文主要介紹了Flask SocketIO如何實現(xiàn)動態(tài)繪圖,需要的可以參考下
    2023-11-11
  • Python實現(xiàn)求兩個csv文件交集的方法

    Python實現(xiàn)求兩個csv文件交集的方法

    這篇文章主要介紹了Python實現(xiàn)求兩個csv文件交集的方法,涉及Python針對csv文件的讀取、遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Django admin.py 在修改/添加表單界面顯示額外字段的方法

    Django admin.py 在修改/添加表單界面顯示額外字段的方法

    今天小編就為大家分享一篇Django admin.py 在修改/添加表單界面顯示額外字段的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python掃描IP段查看指定端口是否開放的方法

    Python掃描IP段查看指定端口是否開放的方法

    這篇文章主要介紹了Python掃描IP段查看指定端口是否開放的方法,涉及Python使用socket模塊實現(xiàn)端口掃描功能的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • python 按不同維度求和,最值,均值的實例

    python 按不同維度求和,最值,均值的實例

    今天小編就為大家分享一篇python 按不同維度求和,最值,均值的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python argparse中的action=store_true用法小結(jié)

    Python argparse中的action=store_true用法小結(jié)

    這篇文章主要介紹了Python argparse中的action=store_true用法小結(jié),本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Python底層封裝實現(xiàn)方法詳解

    Python底層封裝實現(xiàn)方法詳解

    這篇文章主要介紹了Python底層封裝實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • django中資源文件夾的引入及配置方法

    django中資源文件夾的引入及配置方法

    這篇文章主要介紹了django中資源文件夾的引入,主要包括靜態(tài)資源文件夾的引入及媒體資源文件夾的引入,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄

    Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄

    這篇文章主要為大家介紹了Python使用Rich?type和TinyDB構(gòu)建聯(lián)系人通訊錄應(yīng)用程序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Python?Fire實現(xiàn)自動生成命令行接口

    Python?Fire實現(xiàn)自動生成命令行接口

    命令行程序是平時寫一些小工具時最常用的方式,隨著命令行程序功能的豐富,也就是參數(shù)多了以后,解析和管理參數(shù)之間的關(guān)系會變得越來越繁重,而本次介紹的?Fire?庫正好可以解決這個問題,下面我們就來看看具體實現(xiàn)方法吧
    2023-09-09

最新評論