大家好,我是皮皮。
前幾天在Python群里【愛的力量】問了一個(gè)Python
日期處理的問題,這里拿出來給大家分享下。
'2022-03-25 08:00:00.000000000' 大佬們,這種格式的字符串有什么簡單的方法可以轉(zhuǎn)換為2022年3月25日8時(shí)嗎?
這里他自己也寫了一個(gè)代碼,如下所示:
x = '2022-03-25 08:00:00.000000000'
x.split()[0].split('-')[0] + '年' + str(int(x.split()[0].split('-')[1])) + '月' + x.split()[0].split('-')[2] + '日' + str(int(x.split()[1].split(':')[0])) + '時(shí)'
看上去還比較復(fù)雜,希望有更簡單的方法。
這里【果果】給出了一個(gè)Excel版本,如下所示:
使用Excel函數(shù)實(shí)現(xiàn)的,公式是:=TEXT(--LEFT(A1,19),"e年m月d日h時(shí)")
,從結(jié)果來看,確實(shí)實(shí)現(xiàn)了需求。不過粉絲是因?yàn)橐迷谝粋€(gè)較為復(fù)雜的程序里面,這是個(gè)中間步驟,沒法用excel。
想要使用Python來實(shí)現(xiàn),那么該怎么來處理呢?這里是字符串格式化轉(zhuǎn)時(shí)間格式,問ChatGPT應(yīng)該也會有答案的。
from datetime import datetime
date_str = '2022-03-25 08:00:00.000000000'
date_time = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S.%f')
date_time_str = date_time.strftime('%Y年%m月%d日%H時(shí)')
print(date_time_str)
不過代碼運(yùn)行之后,會有一些小小報(bào)錯(cuò),如下圖所示:
從報(bào)錯(cuò)來看, 是后面的0冗余了,還需要對原始字符串進(jìn)行預(yù)處理下才行。
后來【F.light】也給了一個(gè)方法,代碼如下圖所示:
答案很接近了,這個(gè)代碼得到的是03日08時(shí),而粉絲需要的答案是2022年3日8時(shí)這樣的結(jié)果,這里的答案還有點(diǎn)小瑕疵,后來【Peter】給了一個(gè)可行的代碼,如下圖所示:
將代碼整合到一起,就有內(nèi)味了,如下圖所示~
大家好,我是皮皮。這篇文章主要盤點(diǎn)了一個(gè)Pandas
日期處理的問題,文中針對該問題,給出了多種解決方法,也給出了具體的解析和代碼實(shí)現(xiàn),幫助粉絲順利解決了問題。
【提問補(bǔ)充】溫馨提示,大家在群里提問的時(shí)候??梢宰⒁庀旅鎺c(diǎn):如果涉及到大文件數(shù)據(jù),可以數(shù)據(jù)脫敏后,發(fā)點(diǎn)demo數(shù)據(jù)來(小文件的意思),然后貼點(diǎn)代碼(可以復(fù)制的那種),記得發(fā)報(bào)錯(cuò)截圖(截全)。代碼不多的話,直接發(fā)代碼文字即可,代碼超過50行這樣的話,發(fā)個(gè).py文件就行。
聯(lián)系客服