pandas 通过只保留一个条目,如何删除多次出现的特殊字符

yebdmbv4  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(129)

我将如何实现下面提到的输出。
我想删除多次出现的ONLY特殊字符**,而不是单词或数字。**
Link to Original Image of Data
| 数据|所需输出|
| - ------|- ------|
| 氯-林-VM--OE382F|氯化物-林-VM-OE382F|
| 卡娅伊克斯-物理层--aG617A|CYALX-物理层-aG617A|
| FRWIN-VM--FO025B|FRWIN-VM-FO025B型|
| PYWIN-VM--IK043D|PYWIN-VM-IK043D型飞机|
| MQAIX-PhQA622F试剂盒|MQAIX-PhQA622F|
我试过这个代码,但它取代了所有的价值

Single_Column['Workload_2'].replace(regex=True,
                                    inplace=True,
                                    to_replace=r"[^a-zA-Z0-9 -]",
                                    value=r'-')
wfveoks0

wfveoks01#

此"[^a-zA-Z0-9 -]"模式将单独选择给定范围模式中不存在或等于字符""(空格)或"-"(连字符)的所有值,因为此"--"值将永远不会被替换,因为"-"(连字符)存在于模式中。
如果您只从模式中删除"-"(连字符),"--"(双连字符)将被视为两个单独的"-"(连字符),并且替换功能将替换每个"-"(连字符)一次,因此您将再次以双"-"(连字符)结束,即与最初出现的连字符数量相同。
因此,在Set([])末尾添加"+" Quantier。这将匹配之前找到的模式(标记)的一个或多个示例在本例中,使用Set([])找到的模式,即所有未出现在Set([])中的字符,并将其作为一个字符串或匹配提供给您。
Heance使用此模式:[^a-zA-Z0-9 ]+ "^"将给出给定范围模式中不存在的字符和/或等于字符""(空格)"+"的字符,在一次到无限次之间匹配上一个标记,尽可能多地匹配,根据需要返回(贪婪)
"+"将创建一个特殊字符串,而不管它出现多少次,因此我们只需将整个字符串一次替换为所需的值

    • 附言:**

你可以使用下面或其他类似的网站来检查和调试你的正则表达式模式,在网站的右边你可以看到解释和匹配。检查它来了解你的模式将如何工作并给你结果

答答:$^ %$^&$&--回复编号$## %#回复---+#$%1排序编号%$124093@# %$! 0 =?〉〈:[3433165^$%#@5

    • 结果(所有匹配项)**:

$^%$^&$&--
#$#
#%#
-—-+#$%

%$@# %$!

=?〉〈:[^$%#@

相关问题