pandas根据年份列获取年末日期,原datetime.date写法报错原因求解
错误原因说明
datetime.date()是Python标准库提供的原生日期生成函数,仅支持接收单个整数作为年、月、日参数,无法批量处理序列数据。
你首次调用时传入的data['Year'].astype(int)是pandas的Series对象,对应DataFrame中一整列的年份集合,不属于单个整数类型,因此函数执行时无法将整列数据转换为符合要求的单值int参数,触发报错。
可选优化写法
你目前用的字符串拼接转日期的方案已经可以正常运行,如果希望提升大数量级下的处理效率,也可以使用pandas自带的向量化日期处理方法,明确指定日期格式减少解析开销:
# 生成pandas Timestamp类型日期 data['Date'] = pd.to_datetime(data['Year'].astype(str) + '-12-31', format='%Y-%m-%d') # 若需要原生date类型,可追加dt.date转换 # data['Date'] = pd.to_datetime(data['Year'].astype(str) + '-12-31', format='%Y-%m-%d').dt.date
内容的提问来源于stack exchange,提问作者younggotti
相关产品推荐
相关产品推荐

