pandas read_csv 解析日期

pandas read_csv parse dates

我写了这个日期解析函数

def date_parser(string):
   try:
       date = pd.datetime.strptime(string, "%d/%m/%Y")
   except:
       date = pd.NaT
   return date

我在 pd.read_csv 中这样称呼它

df = pd.read_csv(os.path.join(path, file),
                 sep=";",
                 encoding="latin-1",
                 keep_default_na=False,
                 na_values=na_values,
                 index_col=False,
                 usecols=keep,
                 dtype=dtype,
                 date_parser=date_parser,
                 parse_dates=dates)

问题是在我的一个日期列中,我最终得到了混合数据类型

df[data].apply(type).value_counts()

我应该只有最后两个吧?

如果不匹配格式 %d/%m/%Y:

,我建议将 to_datetime 更改为 errors='coerce' for return NaT
def date_parser(string):
   return pd.to_datetime(string, format="%d/%m/%Y", errors='coerce')