在 Pandas 中查找不符合日期时间格式的行

Find rows not fitting datetime format in Pandas

如果这个问题已经被问到,我们深表歉意。我以为会,但我一直无法找到答案。我想将 pandas 数据框中的列转换为日期时间格式

import pandas as pd 
df['DateOfBirth'] = pd.to_datetime(df['DateOfBirth'], format='%Y-%m-%d')

显然有些行包含其他字符

ValueError: time data 0000-00-00 doesn't match format specified

现在 df 很大,因此无法对所有唯一值进行目视检查(我也想学习如何在不查看所有值的情况下进行检查)。我想找出所有不符合指定格式的唯一值,以便我可以清理它们。有什么想法吗?

使用to_datetime with errors='coerce', so wrong format generate missing values, then filter original values and convert to unique lists by DataFrame.loc and Series.unique:

m = pd.to_datetime(df['DateOfBirth'], format='%Y-%m-%d', errors='coerce').isna()

print (df.loc[m, 'DateOfBirth'].unique().tolist())