У меня есть df
,
doc_date date_string
2019-06-03 WW0306
2019-06-07 EH0706
2019-08-08 19685
2019-08-09 258
2019-08-10 441573556
doc_date
имеет dateimte64
dtype, date_string
равно string
, удаление нецифровых символов,
s = df['date_string'].str.replace(r'\D+', '')
doc_date date_string
2019-06-03 0306
2019-06-07 0706
2019-08-08 19685
2019-08-09 258
2019-08-10 441573556
s1 = to_datetime(s, errors='ignore', format='%d%m')
doc_date date_string
2019-06-03 1900-06-03
2019-06-07 1900-06-07
2019-08-08 19685
2019-08-09 258
2019-08-10 441573556
Здесь мне интересно, как игнорировать те строки, чьи date_string
не могут быть преобразованы в datetime;поэтому я могу создать логическую маску как
c1 = (df.doc_date.dt.dayofyear - s1.dt.dayofyear).abs().le(180)
Другое дело, как получить c1
такой же длины, как у s
, которую получит любой date_string
, который не может быть преобразован в datetime
False
в c1
;