如何删除包含格式错误的日期和时间值的行?

时间:2019-04-09 21:55:15

标签: python pandas

我有以下DataFrame df

df =
date        time   val1
1/17/2018   18:00  20.0
1/17/2018   18:02  21.1
1/17/2018   18:10  23.2
1/17/2018   18:12  22.0
17/1/2018   18:12  22.1
17-Jan-2018 18:12  22.0
1/18/2018   60     22.1
aa          17:30  23.3
17/1/20188  18:00  19.0

删除行的条件:

  1. 如果字段date的格式与'%d /%m /%Y'不对应。
  2. 如果字段time的格式不对应于“%H:%M”。

基于这两个条件,应删除df中的最后5行以获得新的干净数据框。

我该怎么办? 谢谢。

1 个答案:

答案 0 :(得分:3)

如果to_datetime与输入不同,则返回errors='coerce'format的一种方法,它将返回NaN

s=pd.to_datetime(df.date+' '+df.time,format='%m/%d/%Y %H:%M',errors='coerce').notna()
df=df[s].copy()
df
Out[212]: 
        date   time  val1
0  1/17/2018  18:00  20.0
1  1/17/2018  18:02  21.1
2  1/17/2018  18:10  23.2
3  1/17/2018  18:12  22.0