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

Python从CSV文件birth_date列提取年份及代码报错解决咨询

解决Pandas提取出生日期年份的问题

报错原因及修复方案

你的代码报错核心原因是birth_date列存在无法转成datetime格式的无效值(比如空字符串、非日期文本、缺失值等),按以下步骤即可解决:

1. 安全转换日期格式

在pd.to_datetime中添加errors='coerce'参数,把无法识别的无效值转为NaT(Pandas的缺失时间标记),避免程序因报错中断:

import pandas as pd
df_data = pd.read_csv('nobel_prize_data.csv')
# 安全转换日期,无效值自动转为NaT
df_data['birth_date'] = pd.to_datetime(df_data['birth_date'], errors='coerce')

2. 提取年份到新列

日期转换完成后,用.dt.year直接提取年份,生成新列(比如命名为birth_year):

df_data['birth_year'] = df_data['birth_date'].dt.year

3. 可选:处理缺失年份

转换后NaT对应的年份会是NaN,可根据需求填充:

# 用0填充缺失年份并转为整数
df_data['birth_year'] = df_data['birth_year'].fillna(0).astype(int)
# 或者用"未知"标记缺失值
df_data['birth_year'] = df_data['birth_year'].fillna('未知')

额外排查:定位无效数据

如果想知道具体哪些值导致转换失败,可筛选出异常行:

invalid_rows = df_data[df_data['birth_date'].isna()]
print(invalid_rows)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:33:10