91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?Pandas讀取Excel日期數據的異常處理怎么辦

發布時間:2022-03-01 09:12:33 來源:億速云 閱讀:483 作者:小新 欄目:開發技術

小編給大家分享一下Python Pandas讀取Excel日期數據的異常處理怎么辦,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

異常描述

有時我們的Excel有一個調整過自定義格式的日期字段:

Python?Pandas讀取Excel日期數據的異常處理怎么辦

當我們用pandas讀取時卻是這樣的效果:

Python?Pandas讀取Excel日期數據的異常處理怎么辦

不管如何指定參數都無效。

出現原因

沒有使用系統內置的日期單元格格式,自定義格式沒有對負數格式進行定義,pandas讀取時無法識別出是日期格式,而是讀取出單元格實際存儲的數值。

Python?Pandas讀取Excel日期數據的異常處理怎么辦

解決方案:修改自定義格式

可以修改為系統內置的自定義格式:

Python?Pandas讀取Excel日期數據的異常處理怎么辦

或者在自定義格式上補充負數的定義:

Python?Pandas讀取Excel日期數據的異常處理怎么辦

增加;@即可

pandas直接解析Excel數值為日期

有時這種Excel很多,我們需要通過pandas批量讀取,挨個人工修改Excel的自定義格式費時費力,下面我演示如何使用pandas直接解析這些數值成為日期格式。

excel中常規格式和日期格式的轉換規則如下:

1900/1/1為起始日期,轉換的數字是1,往后的每一天增加1

1900/1/2轉換為數字是 2

1900/1/3轉換為數字是 3

1900/1/4轉換為數字是 4

以此類推

excel中時間轉換規則如下:

在時間中的規則是把1天轉換為數字是 1

每1小時就是 1/24

每1分鐘就是 1/(24×60)=1/1440

每1秒鐘就是 1/(24×60×60)=1/86400

根據Excel的日期存儲規則,我們只需要以1900/1/1為基準日期,根據數值n偏移n-1天即可得到實際日期。不過還有個問題,Excel多存儲了1900年2月29日這一天,而正常的日歷是沒有這一天的,而我們的日期又都是大于1900年的,所以應該偏移n-2天,干脆使用1899年12月30日作為基準,這樣不需要作減法操作。

解析代碼如下:

import pandas as pd
from pandas.tseries.offsets import Day

df = pd.read_excel("日期.xlsx")
basetime = pd.to_datetime("1899/12/30")
df.日期 = df.日期.apply(lambda x: basetime+Day(x))
df.日期 = df.日期.apply(lambda x: f"{x.month}月{x.day}日")
df.head()
 日期
06月8日
16月9日
26月10日
36月11日
46月12日

如果需要調用time的strftime方法,由于包含中文則需要設置locale:

import pandas as pd
from pandas.tseries.offsets import Day
import locale
locale.setlocale(locale.LC_CTYPE, 'chinese')

df = pd.read_excel("日期.xlsx")
basetime = pd.to_datetime("1899/12/30")
df.日期 = df.日期.apply(lambda x: basetime+Day(x))
df.日期 = df.日期.dt.strftime('%Y年%m月%d日')
df.head()
 日期
02021年06月08日
12021年06月09日
22021年06月10日
32021年06月11日
42021年06月12日

看完了這篇文章,相信你對“Python Pandas讀取Excel日期數據的異常處理怎么辦”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠来县| 铜川市| 西峡县| 皮山县| 莎车县| 金溪县| 调兵山市| 白水县| 洛阳市| 裕民县| 镇平县| 阿瓦提县| 古蔺县| 尼勒克县| 镇赉县| 河西区| 灌南县| 龙口市| 阳江市| 合江县| 饶平县| 获嘉县| 金湖县| 凌源市| 莎车县| 佛山市| 松滋市| 左云县| 香港| 高陵县| 喜德县| 武冈市| 原平市| 开江县| 黄骅市| 平武县| 磐石市| 博罗县| 合水县| 怀安县| 揭阳市|