如何去除pandas DataFrame日期列中的多余无效字符
解决方案
你不需要手动处理月份映射、字符串截断的逻辑,pandas内置的日期解析工具已经支持自动识别各类英文月份、自动过滤无关后缀内容,直接调用即可。
具体实现代码
import pandas as pd # 解析日期列,自动识别格式,异常值转为NaT方便后续排查 df['parsed_date'] = pd.to_datetime(df['Date'], errors='coerce') # 转换为你需要的 dd/mm/yyyy 格式字符串 df['formatted_date'] = df['parsed_date'].dt.strftime('%d/%m/%Y')
效果验证
你给出的所有样例输入都可以被正确解析,对应输出如下:
- 输入
14 September 1932 14:40→ 输出14/09/1932 - 输入
september 6, 1943 6:06 p.m.→ 输出06/09/1943 - 输入
15 november 1991 about 16:00 local time→ 输出15/11/1991 - 输入
July 9 1981 01:47 CST 17:47 UTC→ 输出09/07/1981 - 输入
24 may 1847 ~06:50 am→ 输出24/05/1847
异常处理说明
如果存在个别格式特殊、无法被自动识别的行,可以通过以下代码筛选出来单独调整:
# 筛选解析失败的行 invalid_rows = df[df['parsed_date'].isna()]
内容的提问来源于stack exchange,提问作者Scapegoat
相关产品推荐
相关产品推荐

