从DataFrame中删除包含0到9之间的数字的行

时间:2015-07-21 12:34:35

标签: python pandas

我有一个包含不同类型名称的列(ResourceName)的数据框:

Testvalue
F424221M
F844071
water

我想删除 包含数字(第2行和第3行)的行,以便保留包含Testvalue的行。我找不到合适的解决方案。

类似的东西:

df1 = df1[(df1['ResourceName']) != '**CONTAINS ANY NUMBER**']

1 个答案:

答案 0 :(得分:3)

您可以使用向量化contains和正则表达式模式\d来查看字符串是否包含任何数字以创建布尔掩码并使用~来否定它:

In [173]:
df[~df['Testvalue'].str.contains('\d')]

Out[173]:
  Testvalue
2     water

这里contains生成以下布尔掩码:

In [174]:
df['Testvalue'].str.contains('\d')

Out[174]:
0     True
1     True
2    False
Name: Testvalue, dtype: bool