我的日期字段 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
提交
取消