python轉(zhuǎn)化excel數(shù)字日期為標(biāo)準(zhǔn)日期操作
伙伴遇到一個(gè)關(guān)于excel導(dǎo)入數(shù)據(jù)到python中,日期變成數(shù)字而不是日期格式的問(wèn)題。第一反應(yīng)這個(gè)數(shù)字應(yīng)該是excel里面的時(shí)間戳類似的,所以我就實(shí)驗(yàn)增加一天是不是對(duì)應(yīng)的數(shù)字就加1。最后證明了我的想法,這樣就可以倒推excel里面的數(shù)字日期是從那一年開(kāi)始計(jì)數(shù)的。
我們先看一下excel本身打開(kāi)數(shù)據(jù)的樣子:
我們?cè)倏纯磒ython直接導(dǎo)入后日期的樣子:
那我們的目標(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看看是從那一年開(kāi)始計(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 pdimport datetimedata=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_newdata.columns=col
補(bǔ)充知識(shí):python做Excel表(顯示時(shí)間)
如下所示:
import openpyxlimport datetimewb = openpyxl.Workbook()ws = wb.activews.titlews[’A1’] = 520ws.append([1,2,3])ws[’A3’] = datetime.datetime.now()wb.save(’time.xlsx’)
以上這篇python轉(zhuǎn)化excel數(shù)字日期為標(biāo)準(zhǔn)日期操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. idea設(shè)置自動(dòng)導(dǎo)入依賴的方法步驟2. Jsp中request的3個(gè)基礎(chǔ)實(shí)踐3. XML入門(mén)的常見(jiàn)問(wèn)題(一)4. jsp EL表達(dá)式詳解5. IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實(shí)現(xiàn)6. Django ORM實(shí)現(xiàn)按天獲取數(shù)據(jù)去重求和例子7. idea給項(xiàng)目打war包的方法步驟8. chat.asp聊天程序的編寫(xiě)方法9. idea修改背景顏色樣式的方法10. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?
