我的日期字段 CRT_DT 的日期编码如下 1190314 代表下一个日期 2019 年 3 月 14 日,也是 03/14/2019 990201 代表下一个日期 1999 年 2 月 1 日,也是 02/01/1999我想创建一个将此日期字段规范化为常规日期的字段,因此对于上述内容,它将具有 03/14/2019 和 02/01/1999。规则是,如果它以“1”开头,则将其替换为“20”并将其转换为日期类型,如果它以“9”开头,则添加“19”。df['CRT_DT_Fix'] = np.where(df['CRT_DT'].str.slice(stop=1)='1','20'+df['CRT_DT'].str.slice(start=2),'19'+df['CRT_DT'].str.slice(start=2))
2 回答
四季花海
TA贡献1811条经验 获得超5个赞
使用正则表达式进行替换:
df = pd.DataFrame({
'CRT_DT': ['1190314', '9990201']
})
s = df['CRT_DT'].str.replace('^1', '20') \
.str.replace('^9', '19')
df['Date'] = pd.to_datetime(s, format='%Y%m%d')
结果:
CRT_DT Date
0 1190314 2019-03-14
1 9990201 1999-02-01
蛊毒传说
TA贡献1895条经验 获得超3个赞
如果您仍在寻找解决方案,这也可以:
import datetime
from datetime import datetime
string='990201'
day=string[-2:]
month=string[-4:][:2]
year=int(string[:-4])+1900
new_date_str=month+day+str(year)
new_date=datetime.strptime(new_date_str, '%m%d%Y')
添加回答
举报
0/150
提交
取消