Regex (或其他 python 选项 pref. pandas) 匹配除句号以外的所有非数字,加号和减号 (.,+,-)

我看到很多类似的问题,但都没有解决这个问题。

df = pd.DataFrame()
df['dummy'] = ['gg-21.534wgtr..eu678+ithn']

我想得到。

-21.534..678+

我想真正去掉这些字符,所以我的尝试。

df['dummy'].astype(str).str.replace(r'\D+','')

21534678

是不行的。

regex将是我的首选,否则任何pandas的替代品,任何python的替代品。

解决方案:

你应该用

df['dummy'] = df['dummy'].astype(str).str.replace(r'[^\d.+-]+', '')

搜索引擎演示.

大熊猫方法是 Series.str.replace 来查找并使用另一个字符串(空字符串,因为你是在删除匹配项)替换匹配项。

你需要的模式是 [^\d.+-]+, a 否定字类 匹配任何字符,1个或多个出现,但数字除外。., +-. 请注意以下位置 -,它必须位于字符类的开头或结尾,才能被视为字面的 - 符号,或者它将创建一个范围。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

谷歌应用引擎返回许可拒绝

2022-5-11 7:00:29

解决方案

我在哪里可以得到不支持谷歌服务的设备列表?

2022-5-11 7:00:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索