如何使用Pandas自动修复含日期格式与数字混合的数据集
Pandas修复混合格式日期字段(标准日期+Excel数字序列号)
你的日期字段里同时存在标准日期格式和Excel日期序列号(数字),可以通过以下步骤用Pandas批量修复,不用手动在Excel里调整:
读取数据时把日期列设为字符串类型,避免Pandas自动识别出错:
import pandas as pd df = pd.read_csv("你的数据文件.csv", dtype={"日期列名": str})创建清洗后的日期列,先尝试直接转换标准日期格式,无法转换的标记为
NaT:df["清洗后日期"] = pd.to_datetime(df["日期列名"], errors="coerce")针对标记为
NaT的行(也就是那些数字序列号),用Excel的日期规则转换:
Excel的数字是从1900-01-01开始的天数,所以用origin='1900-01-01'和unit='D'参数转换:# 筛选出需要修复的行 需要修复的行 = df["清洗后日期"].isna() # 把数字转成日期 df.loc[需要修复的行, "清洗后日期"] = pd.to_datetime( df.loc[需要修复的行, "日期列名"].astype(float), origin="1900-01-01", unit="D" )处理Excel的1900闰年bug:
Excel错误地将1900年判定为闰年,导致数字60对应不存在的1900-02-29,需要替换为正确的日期:df["清洗后日期"] = df["清洗后日期"].replace( pd.Timestamp("1900-02-29"), pd.Timestamp("1900-03-01") )
这样就能批量把两种格式的日期统一成标准datetime类型,实现流程自动化。
内容的提问来源于stack exchange,提问作者Barun Bodhak
相关产品推荐
相关产品推荐

