如何使用pandas.to_numeric()转换DataFrame列值并删除无法转换的行
pandas数值转换及无效行删除解决方案
- 第一步:调用
pd.to_numeric()处理Value列,设置errors='coerce'参数,将无法转换为数值的内容(含非数值字符串、原生NaN值)统一转换为NaN格式 - 第二步:使用
dropna()方法,删除Value列为NaN的无效行 - 第三步:将处理后的Value列转换为int类型即可得到目标结果
完整可运行代码示例:
import pandas as pd import numpy as np # 构造示例原始数据 df = pd.DataFrame({ "QuestionID": ["Q1", "Q2", "Q3", "Q4", "Q5"], "Value": ["150.0", "160.0", np.nan, "210.0", "Hello"] }) # 数值转换,无效值转NaN df["Value"] = pd.to_numeric(df["Value"], errors="coerce") # 删除无效行 df = df.dropna(subset=["Value"]) # 转换为整数类型 df["Value"] = df["Value"].astype(int)
处理后输出结果和预期一致:
| 序号 | QuestionID | Value |
|---|---|---|
| 0 | Q1 | 150 |
| 1 | Q2 | 160 |
| 3 | Q4 | 210 |
内容的提问来源于stack exchange,提问作者Joker312
相关产品推荐
相关产品推荐

