溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python如何將excel數(shù)字日期轉(zhuǎn)化為標(biāo)準(zhǔn)日期

發(fā)布時(shí)間:2020-07-15 14:40:55 來源:億速云 閱讀:694 作者:小豬 欄目:開發(fā)技術(shù)

小編這次要給大家分享的是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í)間)

如下所示:

python如何將excel數(shù)字日期轉(zhuǎn)化為標(biāo)準(zhǔn)日期

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ò)的話,可以把他分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI