【问题标题】:Removing "." from number-strings in dataframe using regex deletes all from it [duplicate]删除“。”使用正则表达式从数据框中的数字字符串中删除所有内容[重复]
【发布时间】:2020-02-24 07:11:44
【问题描述】:

我已从 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', '.', ':')) 输出如下所示 :::::::::::::

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

【问题讨论】:

  • 尝试sales.withColumn('gross', regexp_replace('gross', '\.', '')) 。在正则表达式中dot = any character except new line

标签: python regex python-3.x dataframe


【解决方案1】:

正如 RahulRauts 评论的那样:. 在正则表达式中使用时是一个特殊字符。它的意思是“任何单个字符”。如果您的意思是文字 '.'

,则需要通过在前面添加反斜杠来转义它
sales = sales.withColumn('gross', regexp_replace('gross', '\.', ''))

https://docs.python.org/3.8/library/re.html:

特殊字符有:

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

[...]

\ Either 转义特殊字符(允许您匹配 '*'、'?' 等字符),或表示特殊 顺序;下面讨论特殊序列。

【讨论】:

  • 谢谢。当我尝试将逗号替换为点时,它再次不起作用.. sales = sales.withColumn('gross', regexp_replace('gross', ',', '\.'))
  • @lilly 删除 .这次:)
猜你喜欢
  • 2011-10-16
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 2011-03-19
相关资源
最近更新 更多