Pandas 删除列值无效的行

Pandas 删除列值无效的行,pandas,date,Pandas,Date,我在pandas中有一个数据框,我想从中删除所有在特定列中没有有效日期类型值的行。例如,如果所考虑的列为“E” 如果初始数据帧为: 应该是这样的: 日期格式将始终为MM/DD/YY让我们尝试使用来指定日期时间 s = pd.to_datetime(df.E, format='%m/%d/%Y', errors='coerce') # above will return NaN when the format not match df = df[s.notna()] 我用正则表达式解决了这

我在pandas中有一个数据框,我想从中删除所有在特定列中没有有效日期类型值的行。例如,如果所考虑的列为“E”

如果初始数据帧为:

应该是这样的:


日期格式将始终为MM/DD/YY

让我们尝试使用
来指定日期时间

s = pd.to_datetime(df.E, format='%m/%d/%Y', errors='coerce')
# above will return NaN when the format not match 
df = df[s.notna()]

我用正则表达式解决了这个问题:

  • 创建一个函数来检查格式
  • 使用
    Apply()
    将函数应用于数据帧,并在
    check()
    return
    True
  • 在此图中,您可以看到所有步骤:

    def check(column):
      import re
      r = re.compile('.*/.*/')
      if r.match(column) is None:
        return True
      else:
        return False
    
    df.drop(df[df["E"].apply(check)].index, inplace=True)