You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对datetime.date类型的Series应用.dt.year获取年份数组?

解决datetime.date类型Series获取年份数组的问题

当你的Series存储的是Python原生datetime.date对象时,无法直接用.dt.year(因为.dt访问器仅支持pandas内置的datetime64[ns]类型),可以用以下几种方式获取完整年份数组:

方法1:转换为pandas datetime类型后使用.dt.year

把存储datetime.date的Series转换成pandas内置的datetime类型,就能正常使用.dt访问器:

import pandas as pd
import datetime

# 构造示例Series
date_series = pd.Series([datetime.date(2023,1,1), datetime.date(2024,2,2), datetime.date(2025,3,3)])

# 转换为pandas datetime类型
dt_series = pd.to_datetime(date_series)
# 获取年份数组
years = dt_series.dt.year
print(years)

方法2:用apply提取每个元素的year属性

直接对Series中的每个datetime.date对象调用.year属性:

years = date_series.apply(lambda d: d.year)
print(years)

方法3:列表推导式生成年份数组

用Python列表推导式遍历Series,提取每个元素的年份,再转成Series或数组:

years_list = [d.year for d in date_series]
# 转成Series
years = pd.Series(years_list)
print(years)

三种方法都能得到完整的年份数组,其中方法1最推荐——转换后可使用pandas所有datetime相关操作,扩展性更强。

内容的提问来源于stack exchange,提问作者Xtiaan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:42:05