日期格式转换与新列创建求助:处理'Dec-11'格式日期
日期格式转换与年份提取解决方案
你的问题出在日期格式字符串不匹配:原代码用了format='%Y%m',但你的数据格式是Dec-11(英文月份缩写+两位年份),两者完全不匹配,导致pd.to_datetime无法解析,返回NaT。
正确步骤:
匹配正确的格式字符串:
对于Dec-11这种格式,应该用%b-%y:%b:匹配英文月份缩写(如Jan、Dec)%y:匹配两位数字的年份(如11代表2011)
执行转换代码:
loan_df['issue_d'] = pd.to_datetime(loan_df['issue_d'], format='%b-%y', errors='coerce')此时再运行
loan_df.issue_d.head(),会返回正确的datetime类型结果(默认补全日期为当月第一天,如2011-12-01)。提取年份创建新列:
利用dt.year属性提取年份:loan_df['issue_year'] = loan_df['issue_d'].dt.year
验证结果:
转换后你的issue_d列会是datetime类型,issue_year列会显示对应的四位年份(如2011)。
内容的提问来源于stack exchange,提问作者ric_m
相关产品推荐
相关产品推荐

