教你怎么用python實(shí)現(xiàn)字符串轉(zhuǎn)日期
一、生成日期數(shù)據(jù)
import pandas as pd pd.date_range( )
同生成隨機(jī)數(shù)的思想類似,使用pandas庫中的函數(shù)
pd.date_range(start=None,end=None,periods=None,freq=None,tz=None,normalize=False,name=None,close=None,**kwargs)
1.1 設(shè)定開始時(shí)間、長度、頻率
start_date='20200101' length=10 date_1=pd.date_range(start=start_date,periods=10).tolist() #默認(rèn)freq為D,每天 date_1
也可以設(shè)置頻率freq=‘M'
date_1=pd.date_range(start=start_date,periods=10,freq='M')
1.2 設(shè)定起始、終止時(shí)間、頻率
start_date='20200101' end_date='20200110' date_2=pd.date_range(start=start_date,end=end_date,freq='D') #默認(rèn)為D date_2
頻率freq的設(shè)置有:
D --- Day --- 每日 B --- BusinessDay --- 每工作日 H --- Hour --- 每小時(shí) T/min --- Minute ---每分鐘 S --- Second --- 每秒 M --- MonthEnd --- 每月最后一個(gè)日歷日 Q --- Quater --- 每季度
注意上面生成的日期數(shù)據(jù),就是list格式,在構(gòu)建數(shù)據(jù)框時(shí)可以直接用。
pd.DataFrame({'Time':date_1})
二、字符串轉(zhuǎn)化為日期
導(dǎo)入數(shù)據(jù)時(shí)常會出現(xiàn),日期型數(shù)據(jù)導(dǎo)入后,變成字符串格式,在后續(xù)使用時(shí),需要轉(zhuǎn)化為日期。
構(gòu)造一個(gè)時(shí)間數(shù)據(jù)
date_list1=pd.date_range(start=start_date,periods=gap).strftime('%Y%m%d').tolist() num1=np.random.randint(1,101,100) #生成1-101的隨機(jī)整數(shù) num2=np.random.randint(100,201,100) df_temp=pd.DataFrame({'Time':date_list1, 'Number1':num1, 'Number2':num2}) df_temp.head()
上面數(shù)據(jù)構(gòu)造時(shí),為了方便之后舉例子,將生成的時(shí)間數(shù)據(jù)轉(zhuǎn)化為字符串后,構(gòu)造的數(shù)據(jù)框。
2.1 pd.to_datetime()
print(df_temp['Time'].dtype) print(pd.to_datetime(df_temp['Time']).dtype)
輸出:
object
datetime64[ns]
pd.datetime這個(gè)函數(shù)可以直接作用在數(shù)據(jù)框的列上面,直接轉(zhuǎn)換。
2.2 datetime.strptime
注意區(qū)分:
from datetime import datetime datetime.strftime() #由日期格式轉(zhuǎn)化為字符串 datetime.strptime() #由字符串格式轉(zhuǎn)化為日期
例子:
print(datetime.strptime('20200101','%Y%m%d')) print(datetime.strptime('2020-01-01','%Y-%m-%d'))
輸出:
2020-01-01 00:00:00
2020-01-01 00:00:00
但是這個(gè)函數(shù)只能作用一個(gè)值,如果對數(shù)據(jù)框的列進(jìn)行操作,需要首先定義一個(gè)函數(shù):
from datetime import datetime def date_ch(value): return datetime.strptime(value,'%Y%m%d') print(date_ch('20200812')) df_temp['Time']=df_temp['Time'].apply(date_ch) df_temp['Time']
三、從日期數(shù)據(jù)中提取成分
3.1 直接提取:
pd.to_datetime('20200307').month #year:日 #month:月 #week:周 #day:日
輸出:
3
3.2 使用strftime函數(shù):
pd.to_datetime('20200101').strftime('%Y-%m')
輸出:
‘2020-01'
3.3 字符串切片截取
數(shù)據(jù)如下:
def date_ch(value): str_value=value.strftime('%Y-%m-%d') month=str_value[5:7] return month df_temp['Time'].apply(date_ch) #或者 #df_temp['Time'].apply(lambda x:date_ch(x))
strftime函數(shù)提取日期成分中,日期的標(biāo)準(zhǔn)化格式符號:
%a 星期的簡寫。如 星期三為Web %A 星期的全寫。如 星期三為Wednesday %b 月份的簡寫。如4月份為Apr %B 月份的全寫。如4月份為April %c: 日期時(shí)間的字符串表示。(如: 05/01/10 09:00:20) %d: 日在這個(gè)月中的天數(shù) %f: 微秒(范圍[0,999999]) %H: 小時(shí)(24小時(shí)制,[0, 23]) %I: 小時(shí)(12小時(shí)制,[0, 11]) %j: 日在年中的天數(shù) [001,366] %m: 月份([01,12]) %M: 分鐘([00,59]) %p: AM或者PM %S: 秒(范圍為[00,61]) %U: 周在當(dāng)年的周數(shù)當(dāng)年的第幾周),星期天作為周的第一天 %w: 今天在這周的天數(shù),范圍為[0, 6],6表示星期天 %W: 周在當(dāng)年的周數(shù),星期一作為周的第一天 %x: 日期字符串(如:05/01/20) %X: 時(shí)間字符串(如:09:00:20) %y: 2個(gè)數(shù)字表示的年份 %Y: 4個(gè)數(shù)字表示的年份 %z: 與utc時(shí)間的間隔 (如果是本地時(shí)間,返回空字符串) %Z: 時(shí)區(qū)名稱(如果是本地時(shí)間,返回空字符串)
到此這篇關(guān)于教你怎么用python實(shí)現(xiàn)字符串轉(zhuǎn)日期的文章就介紹到這了,更多相關(guān)python字符串轉(zhuǎn)日期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Django搭建web服務(wù)器的例子(最最正確的方式)
今天小編就為大家分享一篇使用Django搭建web服務(wù)器的例子(最最正確的方式),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python實(shí)現(xiàn)語音識別Whisper的使用示例
Whisper是由OpenAI基于Python開發(fā)的能夠識別多國語言的語音識別模型,本文主要介紹了Python實(shí)現(xiàn)語音識別Whisper的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12Python之多線程退出與停止的一種實(shí)現(xiàn)思路
這篇文章主要介紹了Python之多線程退出與停止的一種實(shí)現(xiàn)思路,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Python獲取運(yùn)行目錄與當(dāng)前腳本目錄的方法
這篇文章主要介紹了Python獲取運(yùn)行目錄與當(dāng)前腳本目錄的方法,涉及Python目錄操作與系統(tǒng)相關(guān)變量的獲取技巧,需要的朋友可以參考下2015-06-06python創(chuàng)建列表和向列表添加元素的實(shí)現(xiàn)方法
下面小編就為大家分享一篇python創(chuàng)建列表和向列表添加元素的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12Python實(shí)現(xiàn)監(jiān)控遠(yuǎn)程主機(jī)實(shí)時(shí)數(shù)據(jù)的示例詳解
這篇文章主要為大家詳細(xì)介紹了Python如何使用Socket庫和相應(yīng)的第三方庫來監(jiān)控遠(yuǎn)程主機(jī)的實(shí)時(shí)數(shù)據(jù),比如CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)帶寬等,感興趣的可以了解一下2023-04-04pycharm如何使用anaconda中的各種包(操作步驟)
這篇文章主要介紹了pycharm如何使用anaconda中的各種包,本文通過操作步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07python 限制函數(shù)調(diào)用次數(shù)的實(shí)例講解
下面小編就為大家分享一篇python 限制函數(shù)調(diào)用次數(shù)的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04