在python中用熊猫反转特殊字符

Posted

技术标签:

【中文标题】在python中用熊猫反转特殊字符【英文标题】:Reverse special charcters with Panda in python 【发布时间】:2021-02-23 12:36:09 【问题描述】:

假设我在名为 A 的列中有这样的字符串:

A00001-BL - A00002-BL
D00002-BL-D00003-BL
FA0003 -BL- FA0005-BL

现在我只想将下面的数字颠倒过来,用 lambda 和 python 中的 panda 或任何其他方式将其放在 B 列中:

A00002-BL - A00001-BL
D00003-BL-D00002-BL 
FA0005 -BL- FA0003-BL

我有超过 300000 行不同的字符,我必须对所有这些行应用这种还原。

【问题讨论】:

【参考方案1】:

你可以使用str.replace:

df.A.str.replace(r'^(\w+\s*-\s*\w+)(\s*-\s*)(.*)$',r'\3\2\1')

输出:

0    A00002-BL - A00001-BL
1      D00003-BL-D00002-BL
2    FA0005-BL- FA0003 -BL
Name: A, dtype: object

有关第一个正则表达式字符串的说明,请参阅regex101。第二个正则表达式字符串只是意味着您颠倒了前者中的三个捕获组。

【讨论】:

以上是关于在python中用熊猫反转特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫数据框中替换特殊字符

删除熊猫中的特殊字符和非标准值

尝试反转除特殊字符外的字符串时出错

在数据库 django 中用特殊字符定义特定数字的最佳方法是啥

仅反转句子中字母表的字符串,而不是java中的数字或特殊字符

PySpark:读取 pyspark 框架中的 csv 数据。为啥它在框架中显示特殊字符?除了使用熊猫之外,以表格形式显示的任何方式[重复]