在python中使用Panda反转特殊字符

在python中使用Panda反转特殊字符,python,pandas,list,python-2.7,lambda,Python,Pandas,List,Python 2.7,Lambda,假设我在一个名为a的列中有这样一个字符串: A00001-BL - A00002-BL D00002-BL-D00003-BL FA0003 -BL- FA0005-BL 现在,我只想把数字颠倒过来,如下所示,用python中的lambda和panda或任何其他方式将其放在B列中: A00002-BL - A00001-BL D00003-BL-D00002-BL FA0005 -BL- FA0003-BL 我有超过300000行具有不同字符,我必须对所有行应用此反转。您可以使用str.r

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

A00001-BL - A00002-BL
D00002-BL-D00003-BL
FA0003 -BL- FA0005-BL
现在,我只想把数字颠倒过来,如下所示,用python中的lambda和panda或任何其他方式将其放在B列中:

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

我有超过300000行具有不同字符,我必须对所有行应用此反转。

您可以使用
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
有关第一个正则表达式字符串的说明,请参见。第二个正则表达式字符串只意味着在前者中反转三个捕获组