在 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())
如果这个问题已经被问到,我们深表歉意。我以为会,但我一直无法找到答案。我想将 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())