如何将Pandas DataFrame中的日期列标准化为统一格式
可行,以下是具体实现步骤
完全可以将不同格式的日期标准化为统一的DD/MM/YYYY格式,Pandas的to_datetime()方法能自动识别绝大多数常见的日期格式,再配合strftime()即可完成格式化。
具体操作步骤:
解析日期列,转换为datetime类型
使用pd.to_datetime()将原始日期字符串转换为Pandas的datetime对象,该方法会自动识别如01/03/2021 00:00(带时间戳)、11/24/2022(月/日/年)这类不同格式。添加errors='coerce'可将解析失败的无效日期转为NaT(Not a Time),方便后续排查处理。import pandas as pd # 假设你的日期列名为'date_col' df['date_col'] = pd.to_datetime(df['date_col'], errors='coerce')格式化为DD/MM/YYYY字符串
利用dt.strftime()将datetime对象格式化为你需要的字符串格式,%d代表两位日期,%m代表两位月份,%Y代表四位年份。df['standardized_date'] = df['date_col'].dt.strftime('%d/%m/%Y')
处理歧义日期
如果遇到像03/04/2021这种既可能是日/月/年也可能是月/日/年的歧义格式,需要根据业务数据的实际规则指定dayfirst参数:
- 如果原始数据中日期在前、月份在后,添加
dayfirst=True:df['date_col'] = pd.to_datetime(df['date_col'], errors='coerce', dayfirst=True)
检查异常值
解析完成后,可以查看哪些行存在无法识别的日期:
# 打印解析失败的行 print(df[df['date_col'].isna()])
内容的提问来源于stack exchange,提问作者Chetan Patel
相关产品推荐
相关产品推荐

