#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. Спасибо тебе, Крис!