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

如何用Pandas找出数据列中包含字符串的行?

定位Pandas中含非数字值的行

这是处理数据时很常见的问题,我给你分享几个高效的方法,轻松找出那些混在数字列里的字符串行:

方法1:利用数值转换标记无效行

最通用的方式是用pd.to_numeric()的errors='coerce'参数——这个参数会把无法转换成数字的内容强制转为NaN,之后我们只要筛选出这些NaN对应的行就行:

import pandas as pd

# 假设你的数据集存在df里,目标列是'A'
# 先尝试转换,生成一个临时列存储转换结果
df['temp_numeric'] = pd.to_numeric(df['A'], errors='coerce')
# 筛选出转换失败(即原内容非数字)的行
invalid_entries = df[df['temp_numeric'].isna()]
# 查看结果,就能直接看到像Jim那行的问题数据
print(invalid_entries)

方法2:用正则表达式直接匹配非数字内容

如果你想更精准地定位非数字的字符串,也可以用正则表达式来匹配纯数字模式,取反筛选:

# 匹配包含纯数字的内容,~表示取反,得到非数字的行
invalid_entries = df[~df['A'].str.match(r'^\d+$', na=False)]
print(invalid_entries)

如果你的数字可能包含小数或负号,可以把正则改成r'^-?\d+\.?\d*$',适配更多场景。

小提示

  • 方法1更万能,不管是字母、特殊符号还是其他奇怪的内容,只要无法转成数字都会被抓出来;
  • 方法2适合你明确知道非数字是文本类内容的情况,灵活性更高;
  • 哪怕是几千行的数据,这两种方法的执行速度都很快,完全不用担心性能问题。

拿你给的示例数据测试的话,两种方法都会精准返回Jim那一行,帮你快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:51:21