You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas中筛选不符合%d/%m/%Y日期格式的对应数据行

实现方法

你可以用pandas.to_datetime()的格式校验能力实现筛选,具体代码如下:

import pandas as pd

# 按指定格式尝试转换Date列,转换失败的值会被置为NaT(时间类型的空值)
# 如果你的Date列已经是datetime类型,需要先转成字符串再处理:df['Date'].astype(str)
converted_date = pd.to_datetime(df['Date'], format='%d/%m/%Y', errors='coerce')

# 筛选不符合格式的行:转换结果为NaT的记录
filter_invalid_date = df[converted_date.isna()]

参数说明

  • format='%d/%m/%Y':指定严格匹配日/月/年的格式,不会自动适配其他日期格式
  • errors='coerce':所有不符合格式、无法正常转换的值都会被统一设置为NaT

可选调整规则

如果要区分「日期为空」和「日期格式错误」两种情况,可以调整筛选条件排除空值:

filter_invalid_date = df[converted_date.isna() & df['Date'].notna()]

如果要把这个校验和你之前的筛选规则合并,一次性找出所有不符合要求的行,可以按如下写法合并条件:

all_invalid = df[
    # 原有规则1:Currency为空
    (df['Currency'].isnull()) |
    # 原有规则2:日期晚于2021-06-16且Subtype为空
    ((df["Date"] > '2021-06-16' ) & (df['Subtype'].isnull())) |
    # 新增规则:日期格式不符合要求
    (pd.to_datetime(df['Date'], format='%d/%m/%Y', errors='coerce').isna())
]

内容的提问来源于stack exchange,提问作者Fred

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:45:06