使用 str.contains 使用正则表达式检查列中的数值时出错

Error while using str.contains for checking numeric values in a column using regex

我有一个数据框。我想检查特定列是否具有数值或不使用正则表达式匹配。当我使用 str.contains 时,它会显示如下错误。检查列中的所有值是否都具有数值的正确方法是什么?

df= 
 Roll.No  Words 
  20       two
  30       three
  40       four
  50       five
  60       Nan
  70       Nan
df = df[df['Roll.No'].str.contains(r'[^0-9]', na=True)]
Error: AttributeError: Can only use .str accessor with string values!

您可以使用

df = df[df['Roll.No'].astype(str).str.contains(r'[^0-9]', na=True)]

使用 .astype(str),您将能够 运行 数字列上的正则表达式。

.str.contains(r'[^0-9]', na=True) 表达式将查找包含至少一个非数字字符(如点或逗号)的所有值。