python轉化excel數字日期為標準日期操作
伙伴遇到一個關于excel導入數據到python中,日期變成數字而不是日期格式的問題。第一反應這個數字應該是excel里面的時間戳類似的,所以我就實驗增加一天是不是對應的數字就加1。最后證明了我的想法,這樣就可以倒推excel里面的數字日期是從那一年開始計數的。
我們先看一下excel本身打開數據的樣子:
我們再看看python直接導入后日期的樣子:
那我們的目標就是將字段列名的日期數據替換成標準的日期格式,具體的思路是:
1、先用excel實驗2018-11-02對應的日期時間戳是43406。
2、我再用2018-11-02減43406看看是從那一年開始計算的,所以得出結論是1899-12-30。
3、那最后要達成目標就只需要時間戳+1899-12-30就等于對應的當前日期
這是替換后的列名
以下代碼是將excel時間戳轉化成標準日期,并替換原有列名的具體步驟:
import pandas as pdimport datetimedata=pd.read_excel(r’xxxx.xlsx’)col=list(data.columns)#獲取列名print(col)col_new=[]def date(dates):#定義轉化日期戳的函數,dates為日期戳 delta=datetime.timedelta(days=dates) today=datetime.datetime.strptime(’1899-12-30’,’%Y-%m-%d’)+delta#將1899-12-30轉化為可以計算的時間格式并加上要轉化的日期戳 return datetime.datetime.strftime(today,’%Y-%m-%d’)#制定輸出日期的格式for x in range(len(col[2:9])):#將excel的時間戳循環替換 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轉化excel數字日期為標準日期操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: