我在 Python 中有 Pandas 数据框,如下所示:
col1
------
00121088645
90110544547
02031134543
110588
例如:
因此,我需要:
col1 birthday_date
-------------------------
00121088645 | 2000-12-10
90110544547 | 1990-11-05
02031134543 | 2002-03-11
110588 | 0
使用str
访问器获取前 6 个字符,然后pd.to_datetime()
与format='%y%m%d'
和一起使用errors='coerce'
:
df['birthday_date'] = pd.to_datetime(df['col1'].str[:6], format='%y%m%d', errors='coerce')
# col1 birthday_date
# 0 00121088645 2000-12-10
# 1 90110544547 1990-11-05
# 2 02031134543 2002-03-11
# 3 110588 NaT
如果愿意,用 0fillna(0)
替换的链NaT
:
df['birthday_date'] = pd.to_datetime(df['col1'].str[:6], format='%y%m%d', errors='coerce').fillna(0)
请注意,我假设col1
包含字符串(否则不会有任何前导零)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句