验证多种日期格式(Pandas DataFrame)

时间:2020-12-21 17:42:08

标签: pandas dataframe datetime

有没有办法检查 DataFrame 列中的日期值是否符合 N 种可能的日期格式中的一种,没有其他

唯一可接受的格式是:

  1. YYYY-MM-DD H:M:S -->(秒字段中有或没有小数位)
  2. YYYY-MM-DD H:M
  3. YYYY-MM-DD H
  4. YYYY-MM-DD

在 4 种情况中的每一种情况下,我都想附加所需数量的 0 以使字段完整。因此,例如,“2020-11-28 12”变为“2020-11-28 12:00:00”,“2020-12-18 22:31”变为“2020-12-18 22:31:00”等

我从 this post 借用了 @cs95 的答案,它对我上面提到的所有 4 种格式都很有效。这是我写的:

if pd.to_datetime(df['DATE'], format='%Y-%m-%d %H:%M:%S', errors='coerce').notnull().all():
    df['DATE'] = pd.to_datetime(df['DATE'], format='%Y-%m-%d %H:%M:%S', errors='coerce')
    #something

然而,问题是它也允许只有 YYYY 和 YYYY-MM 的字段。例如,它将接受“2020”作为有效字段并将其设为“2020-01-01 00:00:00”。

我想确保缺失字段的限额严格限制在 YYYY-MM-DD(即 YYYY 和 YYYY-MM 被拒绝)。这可以使用我使用过的方法完成还是我必须尝试其他方法?任何帮助在这里表示赞赏!

0 个答案:

没有答案
相关问题