假设我有几个值,比如
test_val1 = 'E 18TH ST AND A AVE'
test_val2 = 'E 31ST ST AND A AVE'
我想找到18、31等,并用18/31替换它-基本上去掉后缀,但保留整个字符串
期望值
test_val1 = 'E 18 ST AND A AVE'
test_val2 = 'E 31 ST AND A AVE'
请注意,我不想删除与“street”对应的“St”,因此无法进行盲板更换
我的方法是使用下面的方法(目前用于“th”),但它不起作用,因为函数无法将值/文本保存在内存中以返回它
import regex as re
test_val1.replace('\d{1,}TH', '\d{1,}', regex=True)
我有一列充满了这些值,所以我可以在Pnadas列上运行/应用的解决方案将非常有用
您提到它不起作用,因为函数无法将值/文本保留在内存中以返回它。是否强制不将值存储到其他变量
对于以下示例数据帧
这个
产生
这就是你要找的吗?查看docs了解更多详细信息
lambda
函数用作repl
函数(“replace”),其返回的replace模式与字符串中的模式匹配。根据定义,它获取相应的match object作为参数,并且必须返回一个字符串,该字符串通常派生自match对象,但它可能完全不相关。这里的函数返回1的内容。通过match object method ^{(\d+)
-部分我想我可以帮你更换正则表达式。看起来您想要使用的函数实际上是
sub
,而不是replace
。 这是函数签名:检查official documentation
另外here是对类似问题的杰出回答
相关问题 更多 >
编程相关推荐