Найдите/отфильтруйте все строки, содержащие неправильный формат даты

#python #pandas

Вопрос:

Я анализирую некоторые общие таблицы данных,я установил некоторые фильтры, чтобы это помогало находить строки, которые не соответствуют критериям:

 filter3 = df[(df['Currency'].isnull())] filter1= df[(df["Date"] gt; '2021-06-16' ) amp; (df['Subtype'].isnull())]  

Однако я попытался поставить фильтр, чтобы при запуске скрипта я мог находить строки, которые не соответствуют этому формату даты: %d/%m/%Y

Как я могу реализовать этот фильтр? В конце я хотел бы сообщить человеку, добавляющему строки в этот общий отчет, что он/она ввел неправильный формат.

Спасибо!

Ответ №1:

Вот пример того, как использовать errors параметр pd.to_datetime . Если какое-либо из значений даты не соответствует формату, оно вернет значение null. В этом случае мы используем .loc для выбора нулевых (недопустимых) дат.

 import pandas as pd  df = pd.DataFrame({'dates':['2021-06-16','11/08/20']}) df.loc[pd.to_datetime(df['dates'], errors='coerce',format='%Y-%m-%d').isnull()]  

Выход

 dates 1 11/08/20  

Комментарии:

1. Спасибо тебе, Крис!