我有以下df
,
doc_date date_string
2019-06-03 WW0306
2019-06-07 EH0706
doc_date
是datetime64
,格式为year-month-day
; date_string
的格式为字符串dtype
,格式为day/month
或month/day
(如果删除了非数字字符;
df['date_string'].str.replace(r'\D+', '')
如何将date_string
转换为datetime64
,以及如果within_180
位于{{1 }}不考虑它没有转换成的年份和日期格式;
true
结果应该看起来像
date_string
答案 0 :(得分:2)
IIUC,您将date_string
列转换为replace
之后的日期时间,并使用series.dt.dayofyear
访问这两列的年份,并与series.le()
进行比较:>
s=pd.to_datetime(df['date_string'].str.replace(r'\D+', ''),format='%d%m')
#df.doc_date=pd.to_datetime(df.doc_date) convert to datetime if not already datetime
df['withith_180'] = (df.doc_date.dt.dayofyear-s.dt.dayofyear).le(180)
doc_date date_string withith_180
0 2019-06-03 WW0306 True
1 2019-06-07 EH0706 True