您好,登錄后才能下訂單哦!
小編這次要給大家分享的是python如何將excel數(shù)字日期轉(zhuǎn)化為標(biāo)準(zhǔn)日期,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
伙伴遇到一個(gè)關(guān)于excel導(dǎo)入數(shù)據(jù)到python中,日期變成數(shù)字而不是日期格式的問題。第一反應(yīng)這個(gè)數(shù)字應(yīng)該是excel里面的時(shí)間戳類似的,所以我就實(shí)驗(yàn)增加一天是不是對(duì)應(yīng)的數(shù)字就加1。最后證明了我的想法,這樣就可以倒推excel里面的數(shù)字日期是從那一年開始計(jì)數(shù)的。
那我們的目標(biāo)就是將字段列名的日期數(shù)據(jù)替換成標(biāo)準(zhǔn)的日期格式,具體的思路是:
1、先用excel實(shí)驗(yàn)2018-11-02對(duì)應(yīng)的日期時(shí)間戳是43406。
2、我再用2018-11-02減43406看看是從那一年開始計(jì)算的,所以得出結(jié)論是1899-12-30。
3、那最后要達(dá)成目標(biāo)就只需要時(shí)間戳+1899-12-30就等于對(duì)應(yīng)的當(dāng)前日期
這是替換后的列名
以下代碼是將excel時(shí)間戳轉(zhuǎn)化成標(biāo)準(zhǔn)日期,并替換原有列名的具體步驟:
import pandas as pd import datetime data=pd.read_excel(r'xxxx.xlsx') col=list(data.columns)#獲取列名 print(col) col_new=[] def date(dates):#定義轉(zhuǎn)化日期戳的函數(shù),dates為日期戳 delta=datetime.timedelta(days=dates) today=datetime.datetime.strptime('1899-12-30','%Y-%m-%d')+delta#將1899-12-30轉(zhuǎn)化為可以計(jì)算的時(shí)間格式并加上要轉(zhuǎn)化的日期戳 return datetime.datetime.strftime(today,'%Y-%m-%d')#制定輸出日期的格式 for x in range(len(col[2:9])):#將excel的時(shí)間戳循環(huán)替換 col_date=date(col[2:9][x]) col_new.append(col_date) col[2:9]=col_new data.columns=col
補(bǔ)充知識(shí):python做Excel表(顯示時(shí)間)
如下所示:
import openpyxl import datetime wb = openpyxl.Workbook() ws = wb.active ws.title ws['A1'] = 520 ws.append([1,2,3]) ws['A3'] = datetime.datetime.now() wb.save('time.xlsx')
看完這篇關(guān)于python如何將excel數(shù)字日期轉(zhuǎn)化為標(biāo)準(zhǔn)日期的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把他分享出去給更多人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。