首页 > 解决方案 > 删除“。” 使用正则表达式从数据框中的数字字符串中删除所有内容

问题描述

我已经从 SAP 下载数据并尝试进行 ETL。数据集如下所示。

11.780,00
13.824,00
0,00
33.024,00

我试图先删除“点”,然后用点替换“逗号”以下代码使整个列为空白(一切都消失了)这只是一个简单的正则表达式替换语句 sales = sales.withColumn('gross', regexp_replace('gross', '.', ''))

当我再次尝试如下 sales = sales.withColumn('gross', regexp_replace('gross', '.', ':')) 输出时,如下所示 :::::::::::::

我该如何处理这种转换。有点奇怪。谢谢。

标签: pythonregexpython-3.xdataframe

解决方案


正如 RahulRauts 评论的那样:.在正则表达式中使用时是一个特殊字符。它的意思是“任何单个字符”。如果你的意思是文字,你需要在前面加上一个反斜杠来转义它'.'

sales = sales.withColumn('gross', regexp_replace('gross', '\.', ''))

请参阅https://docs.python.org/3.8/library/re.html

特殊字符是:

.(点。)在默认模式下,这匹配除换行符以外的任何字符。

[...]

\要么转义特殊字符(允许您匹配'*'、'?'等字符),要么发出特殊序列的信号;下面讨论特殊序列。


推荐阅读