Python - 从 Pandas DataFrame 中删除包含数字的行

das*_*otz 1 python data-analysis pandas

我有一个数据框,其中有一列,如下所示:

Value
xyz123
123
abc
def
Run Code Online (Sandbox Code Playgroud)

我想删除任何包含数字的行,所以我最终得到一个像这样的数据框:

Value
abc
def
Run Code Online (Sandbox Code Playgroud)

我努力了

df = df[df['Value'].str.contains(r'[^a-z]')]
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

“类型错误:‘方法’对象不可下标”

Bra*_*mon 6

与变量命名问题无关,您可以更明确地仅删除带有数字的行:

df[~df.Value.str.contains(r'\d')]

  Value
2   abc
3   def
Run Code Online (Sandbox Code Playgroud)

\d

匹配任何 Unicode 十进制数字(即 Unicode 字符类别 [Nd] 中的任何字符)。这包括 [0-9] 以及许多其他数字字符。如果使用 ASCII 标志,则仅匹配 [0-9](但该标志会影响整个正则表达式,因此在这种情况下,使用显式 [0-9] 可能是更好的选择)。