Pandas日期時間格式化

2022-07-15 09:43 更新

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

日期格式化符號

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

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

Python處理

Python 內(nèi)置的 strptime() 方法能夠?qū)⒆址掌谵D(zhuǎn)換為 datetime 類型,下面看一組示例:

from datetime import datetime
#將日期定義為字符串    
date_str1 = 'Wednesday, July 18, 2020' 
date_str2 = '18/7/20' 
date_str3 = '18-07-2020'  
#將日期轉(zhuǎn)化為datetime對象 
dmy_dt1 = datetime.strptime(date_str1, '%A,%B%d,%Y') 
dmy_dt2 = datetime.strptime(date_str2, '%d/%m/%y') 
dmy_dt3 = datetime.strptime(date_str3, '%d-%m-%Y')  
#處理為相同格式,并打印輸出
print(dmy_dt1) 
print(dmy_dt2) 
print(dmy_dt3) 

輸出結(jié)果:

2020-07-18 00:00:00
2020-07-18 00:00:00
2020-07-18 00:00:00

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

Pandas處理

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

1) to_datetime()

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

import pandas as pd
import numpy as np
date = ['2012-05-06 11:00:00','2012-05-16 11:00:00']
pd_date=pd.to_datetime(date)
df=pd.Series(np.random.randn(2),index=pd_date)

輸出結(jié)果:

2012-05-06 11:00:00    0.189865
2012-05-16 11:00:00    1.052456
dtype: float64

2) DatetimeIndex()

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

date = pd.DatetimeIndex(['1/1/2008', '1/2/2008', '1/3/2008', '1/4/2008', '1/5/2008'])
dt = pd.Series(np.random.randn(5),index = date)
print(dt)

輸出結(jié)果:

2008-01-01    1.965619
2008-01-02   -2.897374
2008-01-03    0.625929
2008-01-04    1.204926
2008-01-05    1.755680
dtype: float64


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號