Фильтрация типов данных
У меня есть файл 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 |