如何制作数字字符串的条件切片并将其替换为另一个数字字符串值?

我的日期字段 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))


Cats萌萌
浏览 105回答 2
2回答

四季花海

使用正则表达式进行替换: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       Date0  1190314 2019-03-141  9990201 1999-02-01

蛊毒传说

如果您仍在寻找解决方案,这也可以:import datetimefrom datetime import datetimestring='990201'day=string[-2:]month=string[-4:][:2]year=int(string[:-4])+1900new_date_str=month+day+str(year)new_date=datetime.strptime(new_date_str, '%m%d%Y')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python