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

如何在Pandas中实现R语言as.numeric()的强制类型转换效果?

解决方案

你可以使用pandas内置的pd.to_numeric()函数实现需求,将参数errors设置为'coerce',即可在遇到无法转换为数值的内容时,自动将对应位置赋值为NaN,和R中as.numeric()的效果完全一致。

代码示例

import pandas as pd

df = pd.DataFrame({'id':[1,2,3], 'age':['12', 'not_an_age', '34 and a half']})
# 执行转换,转换失败自动设为NaN
df['age'] = pd.to_numeric(df['age'], errors='coerce')
print(df)

输出结果如下:

id   age
0   1  12.0
1   2   NaN
2   3   NaN

可选:转换为可空整数类型

默认转换得到的列是float类型(因为原生Python int不支持空值),如果你需要保留整数类型同时支持空值,可以转换为pandas的可空整数类型Int64(注意首字母大写):

df['age'] = df['age'].astype('Int64')
print(df)

对应输出:

id   age
0   1    12
1   2  <NA>
2   3  <NA>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:09:00