22-Pandas日期時間格式化

Pandas日期時間格式化

當進行數據分析時,我們會遇到很多帶有日期、時間格式的數據集,在處理這些數據集時,可能會遇到日期格式不統一的問題,此時就需要對日期時間做統一的格式化處理。比如“Wednesday, June 6, 2020”可以寫成“6/6/20”,或者寫成“06-06-2020。

日期格式化符號

在對時間進行格式化處理時,它們都有固定的表示格式,比如小時的格式化符號為%H ,分鐘簡寫為%M ,秒簡寫為%S。下表對常用的日期格式化符號做了總結:

符號說明
%y兩位數的年份表示(00-99)
%Y四位數的年份表示(000-9999)
%m月份(01-12)
%d月內中的一天(0-31)
%H24小時制小時數(0-23)
%I12小時制小時數(01-12)
%M分鐘數(00=59)
%S秒(00-59)
%a本地英文縮寫星期名稱
%A本地英文完整星期名稱
%b本地縮寫英文的月份名稱
%B本地完整英文的月份名稱
%w星期(0-6),星期天為星期的開始
%W一年中的星期數(00-53)星期一為星期的開始
%x本地相應的日期表示
%X本地相應的時間表示
%Z當前時區的名稱
%U一年中的星期數(00-53)星期天為星期的開始
%j年內的一天(001-366)
%c本地相應的日期表示和時間表示

Python處理

Python 內置的 strptime() 方法能夠將字符串日期轉換為 datetime 類型,下面看一組示例:

import pandas as pd
from  datetime import datetime
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']
for d in date_str:print(f"轉換前數據:{d},轉換前的數據類型:{type(d)},轉換后的數據類型:{type(datetime.strptime(d,'%Y-%m-%d'))}")

輸出結果:

轉換前數據:1980-12-17,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-02-20,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-02-22,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-04-02,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-09-28,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-05-01,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-06-09,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1987-04-19,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-11-17,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-09-08,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1987-05-23,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-12-03,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1981-12-03,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>
轉換前數據:1982-01-23,轉換前的數據類型:<class 'str'>,轉換后的數據類型:<class 'datetime.datetime'>

我們發現,從csv文件中讀取的數據類型為str類型,通過datetime.strptime()轉換后變為了datetime.datetime類型。也就是將字符串轉換為了時間類型。

注意:strftime() 可以將 datetime 類型轉換為字符串類型,恰好與 strptime() 相反。

import pandas as pd
from  datetime import datetime
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']
for d in date_str:print(f"轉換前格式:{d},轉換后的格式:{datetime.strftime(datetime.strptime(d,'%Y-%m-%d'),'%Y.%m.%d %H:%M:%S')}")

運行結果:

轉換前格式:1980-12-17,轉換后的格式:1980.12.17 00:00:00
轉換前格式:1981-02-20,轉換后的格式:1981.02.20 00:00:00
轉換前格式:1981-02-22,轉換后的格式:1981.02.22 00:00:00
轉換前格式:1981-04-02,轉換后的格式:1981.04.02 00:00:00
轉換前格式:1981-09-28,轉換后的格式:1981.09.28 00:00:00
轉換前格式:1981-05-01,轉換后的格式:1981.05.01 00:00:00
轉換前格式:1981-06-09,轉換后的格式:1981.06.09 00:00:00
轉換前格式:1987-04-19,轉換后的格式:1987.04.19 00:00:00
轉換前格式:1981-11-17,轉換后的格式:1981.11.17 00:00:00
轉換前格式:1981-09-08,轉換后的格式:1981.09.08 00:00:00
轉換前格式:1987-05-23,轉換后的格式:1987.05.23 00:00:00
轉換前格式:1981-12-03,轉換后的格式:1981.12.03 00:00:00
轉換前格式:1981-12-03,轉換后的格式:1981.12.03 00:00:00
轉換前格式:1982-01-23,轉換后的格式:1982.01.23 00:00:00

Pandas處理

除了使用 Python 內置的 strptime() 方法外,你還可以使用 Pandas 模塊的 pd.to_datetime() 和 pd.DatetimeIndex() 進行轉換。

1) to_datetime()

通過 to_datetime() 直接轉換為 datetime 類型

import pandas as pd
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']
date_time = pd.to_datetime(date_str)
print(date_time)

輸出結果:

0    1980-12-17
1    1981-02-20
2    1981-02-22
3    1981-04-02
4    1981-09-28
5    1981-05-01
6    1981-06-09
7    1987-04-19
8    1981-11-17
9    1981-09-08
10   1987-05-23
11   1981-12-03
12   1981-12-03
13   1982-01-23
Name: HIREDATE, dtype: datetime64[ns]

是不是比python中的strptime()更加好用呢?(_)

2) DatetimeIndex()
import pandas as pd
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']
date_time = pd.DatetimeIndex(date_str)
print(date_time)

運行結果:

DatetimeIndex(['1980-12-17', '1981-02-20', '1981-02-22', '1981-04-02','1981-09-28', '1981-05-01', '1981-06-09', '1987-04-19','1981-11-17', '1981-09-08', '1987-05-23', '1981-12-03','1981-12-03', '1982-01-23'],dtype='datetime64[ns]', name='HIREDATE', freq=None)

使用 Datetimeindex() 函數設置時間序,示例如下:

import pandas as pd
import numpy as np
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']
date_time = pd.DatetimeIndex(date_str)df = pd.Series(np.random.randn(14),index = date_time)
print(df)

輸出結果:

1980-12-17   -0.118801
1981-02-20    0.049266
1981-02-22   -0.680420
1981-04-02    0.443656
1981-09-28    0.685218
1981-05-01    2.269103
1981-06-09   -0.704363
1987-04-19   -0.256806
1981-11-17   -0.855622
1981-09-08   -1.782622
1987-05-23    1.270465
1981-12-03   -1.282576
1981-12-03    0.710341
1982-01-23    0.545944
dtype: float64

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39582.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39582.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39582.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rust: polars行遍歷,從dataframe到struct及Bar設計比較

pandas提供了iterrows()、itertuples()、apply等行遍歷的方式&#xff0c;還是比較方便的。 polars的列操作功能非常強大&#xff0c;這個在其官網上有詳細的介紹。由于polars底層的arrow是列存儲模式&#xff0c;行操作效率低下&#xff0c;官方也不推薦以行方式進行數據操作。…

react_后臺管理_項目

目錄 1.運行項目 2. 項目結構 ①項目頂部導航欄 ②項目左側導航欄 ③主頁面-路由切換區 本項目使用的是 reacttsscss 技術棧。 1.運行項目 在當前頁面頂部下載本項目&#xff0c;解壓后使用編輯器打開&#xff0c;然后再終端輸入命令&#xff1a; npm i 下載依賴后&am…

【應急響應】Windows應急響應 - 基礎命令篇

前言 在如今的數字化時代&#xff0c;Windows系統面對著越來越復雜的網絡威脅和安全挑戰。本文將深入探討在Windows環境下的實戰應急響應策略。我們將重點關注實際應急響應流程、關鍵工具的應用&#xff0c;以及如何快速準確地識別和應對安全事件。通過分享實際案例分析&#…

FIO壓測磁盤性能以及需要注意的問題

一、壓測類型 1、順序讀&#xff08;IO&#xff09;&#xff1a;read&#xff0c;bs1M&#xff0c;job數從1開始往上加&#xff1a;2、3、4... 2、順序寫&#xff08;IO&#xff09;&#xff1a;write&#xff0c;bs1M&#xff0c;job數從1開始往上加&#xff1a;2、3、4... …

如何通過 1688 商品詳情的 API 接口獲取商品的詳細信息

在當今數字化商業的大背景下&#xff0c;能夠從 1688 這樣規模龐大且商品種類豐富的電商平臺中準確、高效地獲取商品的詳細信息&#xff0c;對于眾多企業和開發者而言&#xff0c;具有舉足輕重的意義。而通過 1688 商品詳情的 API 接口來實現這一目標&#xff0c;無疑是一種強大…

【ACM出版,馬來西亞-吉隆坡舉行】第四屆互聯網技術與教育信息化國際會議 (ITEI 2024)

作為全球科技創新大趨勢的引領者&#xff0c;中國不斷營造更加開放的科技創新環境&#xff0c;不斷提升學術合作的深度和廣度&#xff0c;構建惠及各方的創新共同體。這是對全球化的新貢獻&#xff0c;是構建人類命運共同體的新貢獻。 第四屆互聯網技術與教育信息化國際學術會議…

【 木蘭寬松許可證】

木蘭寬松許可證&#xff0c; 第1版 2019年8月 http://license.coscl.org.cn/MulanPSL 您對“軟件”的復制、使用、修改及分發受木蘭寬松許可證&#xff0c;第1版&#xff08;“本許可證”&#xff09;的如下條款的約束&#xff1a; 定義 “軟件”是指由“貢獻”構成的許可在“本…

【C++知識點總結全系列 (07)】:模板與泛型編程詳細總結與分析

模板與泛型編程 1、概述(1)What&#xff08;什么是模板、泛型編程&#xff09;(2)Why(3)Which(4)模板參數A.WhatB.HowC.模板參數的類型成員D.默認模板參數 2、模板函數3、模板類(1)How&#xff08;如何定義和使用模板類&#xff09;(2)成員模板 4、模板實參推斷(1)What&#xf…

入侵檢測模型

入侵檢測模型&#xff08;Intrusion Detection Model&#xff09;在網絡安全中起著至關重要的作用。它們用于識別和響應未經授權的訪問和攻擊行為。以下是常見的入侵檢測模型的詳細介紹&#xff1a; 一、入侵檢測模型分類 基于簽名的入侵檢測模型&#xff08;Signature-Based …

昇思25天學習打卡營第7天|Pix2Pix實現圖像轉換

文章目錄 昇思MindSpore應用實踐基于MindSpore的Pix2Pix圖像轉換1、Pix2Pix 概述2、U-Net架構定義UNet Skip Connection Block 2、生成器部分3、基于PatchGAN的判別器4、Pix2Pix的生成器和判別器初始化5、模型訓練6、模型推理 Reference 昇思MindSpore應用實踐 本系列文章主要…

大數據面試題之Flink(3)

如何確定Flink任務的合理并行度? Flink任務如何實現端到端一致? Flink如何處理背(反)壓? Flink解決數據延遲的問題 Flink消費kafka分區的數據時flink件務并行度之間的關系 使用flink-client消費kafka數據還是使用flink-connector消費 如何動態修改Flink的配置&a…

實戰:基于Java的大數據處理與分析平臺

實戰&#xff1a;基于Java的大數據處理與分析平臺 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討如何利用Java構建高效的大數據處理與分析平臺。…

Python基礎003

Python流程控制基礎 1.條件語句 內置函數input a input("請輸入一段內容&#xff1a;") print(a) print(type(a))代碼執行的時候遇到input函數&#xff0c;就會等鍵盤輸入結果&#xff0c;已回車為結束標志&#xff0c;也就時說輸入回車后代碼才會執行 2.順序執行…

pandas數據分析(5)

pandas使用Numpy的np.nan代表缺失數據&#xff0c;顯示為NaN。NaN是浮點數標準中地Not-a-Number。對于時間戳&#xff0c;則使用pd.NaT&#xff0c;而文本使用的是None。 首先構造一組數據&#xff1a; 使用None或者np.nan來表示缺失的值&#xff1a; 清理DataFrame時&#xf…

深度學習之交叉驗證

交叉驗證&#xff08;Cross-Validation&#xff09;是一種用于評估和驗證機器學習模型性能的技術&#xff0c;尤其是在數據量有限的情況下。它通過將數據集分成多個子集&#xff0c;反復訓練和測試模型&#xff0c;以更穩定和可靠地估計模型的泛化能力。常見的交叉驗證方法有以…

java設計模式(四)——抽象工廠模式

一、模式介紹 改善在工廠方法模式中&#xff0c;擴展時新增產品類、工廠類&#xff0c;導致項目中類巨多的場面&#xff0c;減少系統的維護成本&#xff0c;且一個工廠可以生成多種產品&#xff0c;而不是同一種的產品&#xff0c;比如一個工廠既可以生產鞋子又可以衣服&#…

解決數據庫PGSQL,在Mybatis中創建臨時表報錯TODO IDENTIFIER,連接池用的Druid。更換最新版本Druid仍然報錯解決

Druid版本1.1.9報錯Caused by: java.sql.SQLException: sql injection violation, syntax error: TODO IDENTIFIER : CREATE TEMPORARY TABLE temp_ball_classify (id int8 NOT NULL,create_time TIMESTAMP,create_by VARCHAR,classify_name VARCHAR) 代碼如下&#xff1a; 測…

四川蔚瀾時代電子商務有限公司打造抖音電商服務新高地

在數字化浪潮洶涌澎湃的今天&#xff0c;電商行業以其獨特的魅力和強大的市場潛力&#xff0c;成為了推動經濟增長的新引擎。四川蔚瀾時代電子商務有限公司&#xff0c;作為這個領域的佼佼者&#xff0c;正以其專業的服務、創新的理念和卓越的實力&#xff0c;引領抖音電商服務…

用AI,每天創作200+優質內容,2分鐘教會你操作!

前段時間發布了這篇“尋找爆款文案及標題的9大渠道&#xff0c;直接搬運都能搞流量&#xff01;”&#xff0c;里面我講到如何尋找爆款標題。最近不少朋友問我&#xff0c;如何創作這個標題相關的內容。 多數平臺都有風控規則&#xff0c;有些平臺內容也會有字數要求。為了讓大…

SpringBoot 項目整合 MyBatis 框架,附帶測試示例

文章目錄 一、創建 SpringBoot 項目二、添加 MyBatis 依賴三、項目結構和數據庫表結構四、項目代碼1、application.yml2、TestController3、TbUser4、TbUserMapper5、TestServiceImpl6、TestService7、TestApplication8、TbUserMapper.xml9、MyBatisTest 五、瀏覽器測試結果六、…