为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2022-06-14 10:57:02
我的日期字段 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


查看完整回答
反对 回复 2022-06-14
?
蛊毒传说

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')


查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信