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

如何移除DataFrame中指定列包含非数值的行?

解决方法

直接用pd.to_numeric配合布尔索引就能搞定,不用额外加ID列,步骤更简洁高效:

import pandas as pd

df = pd.DataFrame(
    {'a': [0.1,0.5,'10 / 5', 9.0, 125],
     'b': [10, 5, 60, 12, 'a'],
     'c': ['x', 'y', 'z', 'w', 'w']
    })

# 对a、b列尝试转换为数值,无法转换的标记为NaN
numeric_check = df[['a', 'b']].apply(pd.to_numeric, errors='coerce').notna().all(axis=1)
# 筛选出a、b列均为有效数值的行
result_df = df[numeric_check]
print(result_df)

运行后输出就是你想要的结果:

a   b  c
0   0.1  10  x
1   0.5   5  y
3   9.0  12  w

原方法的问题

你用UUID生成唯一ID再合并的方式绕了弯路,不仅多余生成了ID列,还会把ID列也参与数值转换(完全没必要),增加了无意义的计算量。直接通过布尔索引筛选符合条件的行,是最直接的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:26:25