如何使用Python从季度值字段中提取完整四位年份
实现方法
你的Qtr列是固定长度的规则字符串,结构为Q + 1位季度编号 + 2位年份后缀,不需要调用日期解析库,直接对字符串做切片拼接就能拿到目标年份,比日期解析的方案更简单高效,也不会出现格式匹配报错。
具体实现代码(pandas环境)
import pandas as pd # 读取你的数据集,这里用样例数据做演示 df = pd.DataFrame({ 'ID': ['AA', 'AA', 'BB', 'BB'], 'Qtr': ['Q123', 'Q123', 'Q226', 'Q327'] }) # 截取Qtr字段最后2位的年份后缀,拼接前缀20后转成整数 df['Year'] = ('20' + df['Qtr'].str[-2:]).astype(int)
执行后得到的输出完全匹配预期结果:
ID Qtr Year 0 AA Q123 2023 1 AA Q123 2023 2 BB Q226 2026 3 BB Q327 2027
原有代码问题说明
你之前用的datetime.datetime.strptime是用来解析标准完整日期字符串的,你的Qtr字段只有季度标识和两位年份,缺少月、日必要信息,本身不属于可被直接解析的标准日期格式,所以会运行失败。
补充说明:如果你的数据集里包含2000年之前的季度记录(对应年份为19XX),固定拼接
20前缀的逻辑需要根据业务规则调整;从你给出的样例数据来看,所有年份都在2000年之后,当前写法可以直接使用。
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

