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

Python如何从DataFrame列仅提取年份并生成新列?

从released列提取年份的Python解决方案

硬切片提取年份不可靠,因为不同行的日期字符串长度、格式可能存在差异,试试下面几种通用方法:

方法一:利用datetime类型提取(推荐)

如果released列是日期时间类型,或者可以转换为该类型,直接提取年份最稳妥:

import pandas as pd

# 先将列转换为datetime类型(自动处理转换失败的情况)
df_movies['released'] = pd.to_datetime(df_movies['released'], errors='coerce')
# 提取年份到新列
df_movies['release_year'] = df_movies['released'].dt.year

方法二:正则提取年份(适用于字符串格式)

如果released是字符串格式,不管年份在字符串的哪个位置,用正则匹配四位数字的年份即可:

# 从字符串中提取四位数字的年份
df_movies['release_year'] = df_movies['released'].astype(str).str.extract(r'(\d{4})', expand=False)
# 可选:将结果转为整数类型
df_movies['release_year'] = df_movies['release_year'].astype(int, errors='ignore')

方法三:针对固定格式字符串拆分

如果released是固定格式的字符串(比如YYYY-MM-DD),可以直接拆分提取:

# 针对"YYYY-MM-DD"格式拆分提取年份
df_movies['release_year'] = df_movies['released'].str.split('-').str[0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:20:31