Python中如何使用date()函数传入整数数组参数创建datetime列
问题解决方案
你遇到的报错核心原因是datetime.date()仅支持传入单个整数类型的年、月、日参数,无法直接接收整列序列作为输入,以下是两种可直接复用的解决方案:
方案1:使用pandas原生方法生成日期列(推荐)
该方法性能最优,无需逐行遍历,适合大数据量场景:
import pandas as pd # 替换为你自己的三个序列数据 df = pd.DataFrame({ "year": [2020, 2021, 2022], "month": [2, 6, 10], "day": [14, 21, 30] }) # 直接生成日期列,输出为pandas Timestamp类型 df["date"] = pd.to_datetime(df[["year", "month", "day"]]) # 若需要输出datetime.date类型,可加后续转换 df["date"] = df["date"].dt.date
如果存在不合法的日期值(比如month=13、2月30日),可以添加参数自动转为空值避免报错:
df["date"] = pd.to_datetime(df[["year", "month", "day"]], errors="coerce")
方案2:使用apply逐行调用datetime.date
适合需要自定义日期逻辑的场景:
from datetime import date import pandas as pd df = pd.DataFrame({ "year": [2020, 2021, 2022], "month": [2, 6, 10], "day": [14, 21, 30] }) df["date"] = df.apply(lambda x: date(x["year"], x["month"], x["day"]), axis=1)
内容的提问来源于stack exchange,提问作者rer50
相关产品推荐
相关产品推荐

