python轉(zhuǎn)化excel數(shù)字日期為標準日期操作
伙伴遇到一個關(guān)于excel導(dǎo)入數(shù)據(jù)到python中,日期變成數(shù)字而不是日期格式的問題。第一反應(yīng)這個數(shù)字應(yīng)該是excel里面的時間戳類似的,所以我就實驗增加一天是不是對應(yīng)的數(shù)字就加1。最后證明了我的想法,這樣就可以倒推excel里面的數(shù)字日期是從那一年開始計數(shù)的。
我們先看一下excel本身打開數(shù)據(jù)的樣子:
我們再看看python直接導(dǎo)入后日期的樣子:
那我們的目標就是將字段列名的日期數(shù)據(jù)替換成標準的日期格式,具體的思路是:
1、先用excel實驗2018-11-02對應(yīng)的日期時間戳是43406。
2、我再用2018-11-02減43406看看是從那一年開始計算的,所以得出結(jié)論是1899-12-30。
3、那最后要達成目標就只需要時間戳+1899-12-30就等于對應(yīng)的當前日期
這是替換后的列名
以下代碼是將excel時間戳轉(zhuǎ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)化為可以計算的時間格式并加上要轉(zhuǎn)化的日期戳 return datetime.datetime.strftime(today,’%Y-%m-%d’)#制定輸出日期的格式for x in range(len(col[2:9])):#將excel的時間戳循環(huán)替換 col_date=date(col[2:9][x]) col_new.append(col_date)col[2:9]=col_newdata.columns=col
補充知識:python做Excel表(顯示時間)
如下所示:
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ù)字日期為標準日期操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp+servlet簡單實現(xiàn)上傳文件功能(保存目錄改進)2. .Net反向代理組件Yarp用法詳解3. 解決request.getParameter取值后的if判斷為NULL的問題4. .NET Framework各版本(.NET2.0 3.0 3.5 4.0)區(qū)別5. 詳解JSP 內(nèi)置對象request常見用法6. JSP中param動作的實例詳解7. ASP.NET MVC實現(xiàn)下拉框多選8. ASP.NET MVC增加一條記錄同時添加N條集合屬性所對應(yīng)的個體9. .NET中的MassTransit分布式應(yīng)用框架詳解10. ASP.NET MVC實現(xiàn)本地化和全球化
