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數字日期為標準日期操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
1. php網絡安全中命令執行漏洞的產生及本質探究2. 三個不常見的 HTML5 實用新特性簡介3. Angular獲取ngIf渲染的Dom元素示例4. IIS+PHP添加對webp格式圖像的支持配置方法5. ASP調用WebService轉化成JSON數據,附json.min.asp6. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁7. 使用.net core 自帶DI框架實現延遲加載功能8. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報錯問題分析9. php測試程序運行速度和頁面執行速度的代碼10. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執行過程解析
