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

Pandas提取datetime列年份返回float类型问题求助

解决Pandas提取datetime年份返回float类型的问题

嘿,作为Pandas新手碰到这个问题太正常啦!我当初刚用的时候也踩过这个坑😉。出现float类型的核心原因是你的Joined_date列里大概率存在缺失值(NaN)——因为标准的int类型没法存储缺失值,Pandas就自动把年份转换成了float类型来兼容。

下面给你几个实用的解决办法,按需选择:

方法1:直接转换为整数(无缺失值时用)

如果确认Joined_date列没有缺失值,直接用astype(int)转成整数类型就行:

fifa['Joined_year'] = fifa['Joined_date'].dt.year.astype(int)

执行后你就能得到全是1970的整数列啦。

方法2:支持缺失值的整数类型(有缺失值时用)

如果列里存在缺失值,用Pandas的Nullable Integer类型(Int64,注意是大写的I),它既能存储整数,又能兼容NaN:

fifa['Joined_year'] = fifa['Joined_date'].dt.year.astype('Int64')

这样缺失值会显示为pd.NA,而不会破坏整数类型的结构。

方法3:填充缺失值后转类型

如果想把缺失值替换成某个具体值(比如0或者某个默认年份),可以先用fillna填充,再转整数:

# 比如把缺失值填充为0,再转int
fifa['Joined_year'] = fifa['Joined_date'].dt.year.fillna(0).astype(int)

你可以先检查下Joined_date列有没有缺失值,验证一下我的说法:

print(fifa['Joined_date'].isna().sum())

如果输出大于0,就说明确实有缺失值导致了float类型的出现~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 19:48:15