Фильтрация типов данных

У меня есть файл excel в одном из столбце которого, по большей части, есть даты, но могут попадаться пустые строки или вообще текст. Мне необходимо отфильтровать только строки с датами, получить эту дату и сравнить ее с текущей датой, а также получить значения в связанных колонках этих строк. Я пытаюсь это сделать с помощью библиотек Pandas и Openpyxl но пока безрезультатно. Подскажите, пожалуйста, куда мне копать?


Ответы (1 шт):

Автор решения: CrazyElf

Примерный сценарий:

  • Пытаемся преобразовать колонку с предположительными датами в даты (можно при желании указать точный формат и другие параметры)
  • Отфильтруем из получившегося NA и нереалистичные даты
  • По получившейся маске берём наш исходный датафрейм

Параметры нужно подбирать в зависимости от ваших конкретных данных, но в целом примерно так.

import pandas as pd

df = pd.DataFrame({
    'date': ['', 123, '2022-06-01', '2022-31-01', 'abc', '2022-03'], 
    'text': ['fssdf', 'rerre', 'frewffe', '43t4t4', 'rgerg', 'rgegre']
    })
dates = pd.to_datetime(df['date'], errors='coerce')
mask = ~pd.isna(dates) & (dates > '2020-01-01')
df[mask]
index date text
2 2022-06-01 frewffe
5 2022-03 rgegre
→ Ссылка