在python中从字母数字列中删除整数值

在python中从字母数字列中删除整数值,python,regex,Python,Regex,我是python新手,在一项琐碎的任务中苦苦挣扎。我有一个字母数字列,称为region。它既有以/开头的条目,如/健康/血压等,也有整数值。因此,通常很少观察到: /health/blood pressure /health/diabetes 7867 /fitness 9087 /health/type1 diabetes 现在我想删除所有整数值的行/案例。因此,在将数据集导入python shell之后,它将区域显示为对象。我打算用一种正则表达式来解决这个问题。因此,我做了以下工作: pa

我是python新手,在一项琐碎的任务中苦苦挣扎。我有一个字母数字列,称为region。它既有以/开头的条目,如/健康/血压等,也有整数值。因此,通常很少观察到:

/health/blood pressure
/health/diabetes
7867
/fitness
9087
/health/type1 diabetes
现在我想删除所有整数值的行/案例。因此,在将数据集导入python shell之后,它将区域显示为对象。我打算用一种正则表达式来解决这个问题。因此,我做了以下工作:

pattern='/'
data.region=Series(data.region)
matches=data.region.str.match(pattern)
matches
这里它给出一个布尔对象,解释每个模式是否在数据集中。所以我得到了这样的结果:

0  true
1 false
2 true
3 true
.........
so on.
现在我被困在如何删除带有假标记的匹配布尔对象的行上。If语句不起作用。如果有人能提供某种帮助,那就太好了


谢谢

您似乎正在使用熊猫框架。因此,我不能完全确定这是否有效:

您可以尝试:

matches = [i for i in data.region if i.str.match(pattern)]
在python中,这称为列表理解,它遍历data.region中的每个条目,检查您的模式,并将其放入列表中,如果模式匹配(因此“if”后面的表达式为true)

见:

如果要为每个区域映射这些内容,可以尝试创建一个字典,将这些区域映射到具有以下dict理解的列表:

matches = {region: [i for i in data.region if i.str.match(pattern)] for region in data}
见:

但是,您肯定要离开熊猫框架的领域。这可能最终失败,因为区域不是一个整数/字符串,而是一个列表本身(我不知道如何判断)

在这种情况下,您可以尝试:

matches = {}
for region in list_of_regions:
    matches[region] = [i for i in data.region if i.str.match(pattern)]

这与给定的区域列表基本相同,并且在for循环中明确了dict理解。

只需执行
数据[匹配]
谢谢!!成功了。我两方面都做了!!。正如上面评论中所建议的,数据[匹配]也解决了我的任务。另外,我想为每个区域形成映射变量,例如:区域1、区域2、区域n,用于每个区域的非整数值。使用列表理解也是可行的吗?如果答案解决了你的问题,请考虑接受它。我想把这两个栏目结合在一起。我的意思是,在获得100个有效的区域值之后,我想在region变量的第一个、第二个和后续条目上再添加一个列region_map,值为region 1、region2。上面的代码会同时产生这两个变量吗?这太复杂了。考虑打开一个新的问题,在这里你给出输入和输出应该如何样的示例。