一文帶你搞懂pandas中的時間處理(詳細)

2021-02-20 數據幫Club



目錄:

1、pandas中6個時間相關的類

2、Timestamp類

   1)查看時間列,是str字符串列,還是時間格式列

     2)使用pd.to_datetime()將字符串,轉換為日期格式

     3)Timestamp類只能表示1677年-2262年的時間

   4)Timestamp類常用屬性

3、DatetimeIndex與PeriodIndex函數:類似於to_datetime()函數

4、Timedelta類

  1)日期前移、後移一天

  2)兩個時間做差

1、pandas中6個時間相關的類

    在多數情況下,對時間類型數據進行分析的前提就是將原本為字符串的時間轉換為標準時間類型。
  pandas繼承了NumPy庫和datetime庫的時間相關模塊,提供了6種時間相關的類。


2、Timestamp類

其中Timestamp作為時間類中最基礎的,也是最為常用的。

在多數情況下,時間相關的字符串都會轉換成為Timestamp。

pandas提供了to_datetime()函數,能夠實現這一目標。

值得注意的是,Timestamp類型時間是有限制的。

1)查看時間列,是str字符串列,還是時間格式列

import pandas as pd

df = pd.read_csv(r"E:\電腦視頻錄製軟體\視頻下載安裝路徑\Python數據分析與應用人郵版\data\meal_order_info.csv",
engine="python",
encoding="gbk")
df['lock_time'].head()
type(df['lock_time'][0])
pd.to_datetime(df['lock_time']).head()

結果如下:


2)使用pd.to_datetime()將字符串,轉換為日期格式

import pandas as pd

df = pd.read_csv(r"E:\電腦視頻錄製軟體\視頻下載安裝路徑\Python數據分析與應用人郵版\data\meal_order_info.csv",
engine="python",
encoding="gbk")
df['lock_time'] = pd.to_datetime(df['lock_time'])
df['lock_time'].head()

結果如下:


3)Timestamp類只能表示1677年-2262年的時間

pd.Timestamp.min
pd.Timestamp.max

結果如下:


4)Timestamp類常用屬性

在多數涉及時間相關的數據處理,統計分析的過程中,需要提取時間中的年份,月份等數據。

使用對應的Timestamp類屬性就能夠實現這一目的。

結合Python列表推導式,可以實現對DataFrame某一列時間信息數據的提取。


操作如下:

import pandas as pd

df = pd.read_csv(r"E:\電腦視頻錄製軟體\視頻下載安裝路徑\Python數據分析與應用人郵版\data\meal_order_info.csv",
engine="python",
encoding="gbk")
df['lock_time'] = pd.to_datetime(df['lock_time'])
df["年"] = df['lock_time'].apply(lambda x:x.year)
df["年"].head()

結果如下:

5)利用strftime()方法提取指定格式日期

df[『lock_time』][0]
df[『lock_time』][0].strftime(「%Y-%m」)

結果如下:


3、DatetimeIndex與PeriodIndex函數:類似於to_datetime()函數

除了將數據字原始DataFrame中直接轉換為Timestamp格式外,還可以將數據單獨提取出來將其轉換為DatetimeIndex或者PeriodIndex。

轉換為PeriodIndex的時候需要注意,必須通過freq參數指定時間間隔,常用的時間間隔有Y為年,M為月,D為日,H為小時,T為分鐘,S為秒。

兩個函數可以用來轉換數據還可以用來創建時間序列數據,其參數非常類似。

import pandas as pd

df = pd.read_csv(r"E:\電腦視頻錄製軟體\視頻下載安裝路徑\Python數據分析與應用人郵版\data\meal_order_info.csv",
engine="python",
encoding="gbk")
df['lock_time'] = pd.DatetimeIndex(df['lock_time'])
df['lock_time'][0]
---
df = pd.read_csv(r"E:\電腦視頻錄製軟體\視頻下載安裝路徑\Python數據分析與應用人郵版\data\meal_order_info.csv",
engine="python",
encoding="gbk")
df['lock_time'] = pd.PeriodIndex(df['lock_time'],freq="S")
df['lock_time'][0]

結果如下:


4、Timedelta類

Timedelta是時間相關的類中的一個異類,不僅能夠使用正數,還能夠使用負數表示單位時間,例如1秒,2分鐘,3小時等。

使用Timedelta類,配合常規的時間相關類能夠輕鬆實現時間的算術運算。

目前Timedelta函數中時間周期中沒有年和月。


1)日期前移、後移一天

import pandas as pd

df = pd.read_csv(r"E:\電腦視頻錄製軟體\視頻下載安裝路徑\Python數據分析與應用人郵版\data\meal_order_info.csv",
engine="python",
encoding="gbk")
df['lock_time'] = pd.to_datetime(df['lock_time'])
df['lock_time'][0]# 後移一天df['lock_time'][0] + pd.Timedelta(days=1)# 前移一天df['lock_time'][0] + pd.Timedelta(days=-1)

結果如下:


2)兩個時間做差

df['lock_time'][0]
pd.to_datetime("2020-3-13") - df['lock_time'][0]

a = pd.to_datetime("2020-3-13") - df['lock_time'][0]
a.days

結果如下:


綜上所述:上述的6個方法,只要將str轉換為日期格式後,都可以統一使用如下的【Timestamp類的常用屬性】,進行提取年、提取月 等操作。


為方便大家交流信息,我們建立了「數據幫Club」QQ群,我們後期將會在群裡隨時轉發推文信息。歡迎大數據、統計、人工智慧、數據科學愛好者加群交流學習

本文作者黃偉在CSDN的博客二維碼如下,更多精彩可掃描二維碼關注!

歡迎投稿至:Datahelpclub@126.com



相關焦點

  • 使用Pandas進行數據處理
    引言我們將深入講解pandas庫在數據處理階段的功能數據處理又可以細分為三個階段,我們將通過例子詳細講解各個階段都會涉及哪些操作,以及如何充分利用pandas庫提供的函數來完成這些操作。數據處理的三個階段為:數據準備、數據轉換和數據聚合。數據準備開始處理數據工作之前,需要先行準備好數據,把數據組裝成便於用pandas庫的各種工具處理的數據結構。
  • 用pandas處理時間格式數據
    本文2023字,預計閱讀需10分鐘;我們在處理時間相關的數據時有很多庫可以用,最常用的還是內置的datetime、time這兩個。
  • Python數據處理庫pandas入門教程
    pandas提供了快速,靈活和富有表現力的數據結構,目的是使「關係」或「標記」數據的工作既簡單又直觀。它旨在成為在Python中進行實際數據分析的高級構建塊。入門介紹pandas適合於許多不同類型的數據,包括:由於這是一個Python語言的軟體包,因此需要你的機器上首先需要具備Python語言的環境。
  • PANDAS: 新手教程 一
    它可以幫助你對數據進行各種操作,並生成有關它的不同報告。我將把這篇文章分成兩篇基本知識-我將在這個故事中介紹。我將介紹Pandas的基本功能,這些功能將使你大致了解如何開始使用Pandas,以及它如何幫助你節省大量時間。高級-將通過高級的功能,使它更容易解決複雜的分析問題。它將涵蓋的主題,如風格,繪圖,讀取多個文件等。第二部分仍在進行中,敬請期待。
  • 一文帶你認識超級壽星
    一文帶你認識超級壽星時間:2020-12-25 16:59   來源:今日頭條   責任編輯:沫朵 川北在線核心提示:原標題:超級壽星的植物是什麼? 一文帶你認識超級壽星 超級壽星的植物是什麼 關於這些你知道嗎?超級壽星的植物是什麼,具體詳情如下: 1、超級壽星的植物是百歲蘭。 2、百歲蘭是百歲蘭科百歲蘭屬植物。
  • 數據處理技巧 | 帶你了解Pandas.groupby() 常用數據處理方法
    今天我們繼續推出一篇數據處理常用的操作技能匯總:靈活使用pandas.groupby()函數,實現數據的高效率處理,主要內容如下:pandas.groupby()三大主要操作介紹說到使用Python進行數據處理分析,那就不得不提其優秀的數據分析庫-Pandas,
  • 關於Pandas數據處理你不知道的技巧!
    旗下高端量化雲平臺當我們參加一些比賽時,我們可能要花費大量時間來處理數據。本文將由淺到深,為大家講解關於Pandas在數據清理和處理的一些技巧!我們將使用 pandas.cut() 方法生成IMDb得分的示例。根據分數[0.,4., 7., 10.],把電影分成不同的類別 [『shyyyte』, 『moderate』, 『good』]。得分在0-4之間的電影將被放入『shyyyte』 箱中,等等。
  • 掌握pandas中的transform
    ❝本文示例代碼及文件已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes❞1 簡介開門見山,在pandas中,transform是一類非常實用的方法,通過它我們可以很方便地將某個或某些函數處理過程(非聚合)作用在傳入數據的每一列上,從而返回與輸入數據形狀一致的運算結果
  • pandas日期(時間)處理總結--pandas日期和字符串之間的相互轉換,從日期欄位中提取年月日、時分秒、周數、季度等
    在做數據處理的過程,包括數據過濾、數據匯總計算等都會經常用到pandas從日期屬性中提取年月日。
  • pandas讀取表格後的常用數據處理操作
    pandas讀取表格後的一些常用數據處理操作。這篇文章其實來源於自己的數據挖掘課程作業,通過完成老師布置的作業,感覺對於使用python中的pandas模塊讀取表格數據進行操作有了更深層的認識,這裡做一個整理總結。
  • 手把手教你用pandas處理缺失值
    pandas對象的所有描述性統計信息默認情況下是排除缺失值的。pandas對象中表現缺失值的方式並不完美,但是它對大部分用戶來說是有用的。對於數值型數據,pandas使用浮點值NaN(Not a Number來表示缺失值)。
  • 超詳細整理!Pandas實用手冊(PART I)
    這一系列一共三部分,裡面的一些技巧可能暫時用不上,但是相信總有一天你會接觸到,建議收藏 或者老規矩,訂閱號後臺回復 "pd" 獲取 廢話不多說啦,讓我們開始這趟pandas旅程吧!當然,首先你得import pandas:
  • 使用Pandas數據處理與分析
    前言:這是關於個人關於對pandas可以進行的數據處理和數據分析的見解的初版,其中肯定不乏一些錯誤之處,希望大家能多多指正。而update則會更新左表的所有能在右表中找到的值(兩表位置相對應)。具體了解可以在pandas官網上自行查閱,或者可以再Jupyter Notebook 中採用help()命令查閱。
  • Pandas進階Excel(一)——讀取
    今天開始介紹python可以操作Excel的另一個強大的庫——pandas庫。個人認為,pandas庫對於操作Excel有著極好的支撐。在數據導入、數據清洗、數據計算、數據導出都有著完整性的支撐,是一個提供高性能易用數據類型和分析工具,並且用一段時間你就會發現如果拿pandas只操作表格數據,是真的大材小用。 它不僅可以處理數據,更可以可視化數據。譬如可以做出這樣的圖表。
  • 利用Python中的pandas(date_range)庫生成時間序列(time series)
    在講pandas時間序列函數之前,我大概介紹下什麼是時間序列(time series)。時間序列(time series)簡單的說就是各時間點上形成的數值序列,時間序列(time series)分析就是通過觀察歷史數據預測未來的值。比如股票預測、房價預測分析等。本篇文章主要詳細講解生成時間索引的函數date_range及延伸函數。
  • Pandas 數據處理|Datetime 時間模塊在 Pandas 中的使用
    Datatime 作為 Python 中的時間模塊類型,處理時間有關數據是非常方便的, Pandas 作為數據分析程序包同樣也支持 DataTime 數據機制,例如1,函數 to_datetime() 將數據列表中的 Series 列轉化為 datetime 類型,#Convert the type to datetimeapple.Date =
  • 使用Pandas的resample函數處理時間序列數據的技巧
    通常,可能會對將時序數據重新採樣到要分析數據的頻率或從數據中汲取更多見解的頻率感興趣。在本文中,我們將介紹一些使用Pandas resample()函數對時間序列數據進行重採樣的示例。我們將介紹以下常見問題,並應幫助您開始使用時序數據操作。
  • pandas+PyQt5輕鬆製作數據處理工具
    作者:才哥由於在工作中需要處理很多日誌文件數據,這些數據並不存在於資料庫,而是以每日1個單文件的形式存在,為了讓我們在日常數據處理中更方便的進行一些基礎的數據合併、清洗篩選以及簡單的分組或數據透視處理,結合PyQt5與pandas庫,製作了一個簡單的數據處理可視化工具。
  • Pandas 數據處理 | Datetime 時間模塊在 Pandas 中的使用
    Datatime 作為 Python 中的時間模塊類型,處理時間有關數據是非常方便的, Pandas 作為數據分析程序包同樣也支持 DataTime 數據機制,例如1,函數 to_datetime() 將數據列表中的 Series 列轉化為 datetime 類型,#Convert the type to datetimeapple.Date
  • 不再糾結,一文詳解pandas中的map、apply、applymap、groupby、agg...
    文章的數據和代碼都已上傳至我的github倉庫:https://github.com/CNFeffery/DataScienceStudyNotes一、簡介pandas提供了很多方便簡潔的方法,用於對單列、多列數據進行批量運算或分組聚合運算,熟悉這些方法後可極大地提升數據分析的效率,也會使得你的代碼更加地優雅簡潔。