Я пытаюсь извлечь только даты из column(Result)
из dataframe
. Даты будут начинаться только с 2000 года и позже, но формат даты может быть любым, включая дату и время.
Я хочу просто свиданий.
Есть ли простой способ сделать это с помощью простых кодов Regex?
Пример набора данных:
date_extract_df = pd.DataFrame({
'Result':[': XYZ',': 39 YRS/M',': Self',': HOME COLLECTION',': 10593974',
': 012408030006',': 03/08/2024',': 03/Aug/2024 11:50 AM',': 03/Aug/2024 03:24 PM',
' ','31.80','15'],
'Unit':['dfd','dfdfd','tytyt','03/08/2024','fgf','tyt','xcx','ere','sds','03/Aug/2024 03:24 PM',
'4545','5656']
})
Expected Result:
0
1
2
3
4
5
6 03/08/2024
7 03/Aug/2024
8 03/Aug/2024
9 03/Aug/2024
10
11
Я не очень хорошо разбираюсь в Regex и попробовал код ниже:
date_extract_df.Result.str.extract(r"^[0,1]?\d{1}/(([0-2]?\d{1})|([3][0,1]{1}))/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$")
Есть ли способ выяснить строки, содержащие даты в столбце, а затем отфильтровать эту строку, чтобы извлечь дату?
Я пробовал это для аналогичного подхода:
datetime.datetime.isoformat(date_check['Result'][9])
date_check['Result'].apply(lambda x: datetime.datetime.isoformat(x))
🤔 А знаете ли вы, что...
Python популярен в машинном обучении и искусственном интеллекте.
Минус время эпохи (строка 6), это должно выполнить задачу.
pd.to_datetime(date_extract_df["Result"].str.replace(": ",""), errors = "coerce")
Чтобы пойти глубже, вы можете использовать сторонние инструменты, такие как dateparser
, чтобы охватить больше случаев.