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

如何修改pandas多列数据类型并删除无法转换为float的无效行

解决方法

可以通过Pandas的内置函数自动完成批量转换+无效值行过滤,无需逐列手动检查,代码如下:

import pandas as pd

# 定义所有需要转换为float64的列
convert_cols = [
    "GDP growth rate (annual %, const. 2005 prices)",
    # 此处补充剩余16个需要转换的列名
]

# 批量转换列类型,无法转换的异常值自动设为NaN
country_df[convert_cols] = country_df[convert_cols].apply(
    pd.to_numeric,
    errors="coerce",
    downcast="float"
)

# 可选操作:如果你的数据中-99属于占位无效值而非真实数据,可执行这一步将其转为空值
# country_df[convert_cols] = country_df[convert_cols].replace(-99, pd.NA)

# 删除所有包含无效值的行,重置索引
country_df = country_df.dropna(subset=convert_cols).reset_index(drop=True)

原理说明

  • 核心参数errors="coerce"会自动将所有无法解析为数字的内容(比如你遇到的-~0.0、...、含特殊字符的异常值)转换为空值NaN,不会抛出转换错误
  • 最后通过dropna过滤掉所有在目标列中存在空值的行,最终保留的行所有目标列都为可正常运算的float64类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:15:05