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

如何将DataFrame列转换为float类型并永久保留修改结果

解决方案

你当前使用的赋值写法本身就已经实现了永久修改原DataFrame的效果,运行代码后直接调用nba.head()就能看到修改已经被保留,不需要额外添加inplace参数。

报错原因说明

pd.to_numeric 方法本身不支持inplace参数,你直接在apply中传入inplace=True会触发无效参数报错,属于正常现象。

两种可用的永久修改方案

  • 方案1(最推荐,就是你当前在用的写法,简洁高效)
# 运行后修改直接写入原nba对象,无需额外操作
nba[["G","GS","MP"]] = nba[["G","GS","MP"]].apply(pd.to_numeric)
# 直接调用即可看到转换后的结果
nba.head()

如果你的列中存在无法转换为数值的特殊字符,可以添加errors参数避免转换报错,无法转换的内容会自动设为空值:

nba[["G","GS","MP"]] = nba[["G","GS","MP"]].apply(pd.to_numeric, errors="coerce")
  • 方案2(逐列处理写法,无需整体赋值)
for col in ["G", "GS", "MP"]:
    nba[col] = pd.to_numeric(nba[col])

异常排查

如果运行上述代码后查看类型仍未修改,优先排查两个问题:

  1. 赋值完成后有没有重新读取原始nba数据源,覆盖了已修改的结果
  2. 转换的列中存在全量无法识别为数值的内容,导致转换后仍然是object类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 20:12:03