我有看起来像如下的字符串:
ART-B-C-ART0015-D-E01
ADC-B-C-ADC00112-V-E01
AEE-B-C-AEE00011-D-E01
AQW-B-C-AQW0013-D-E01
AAZ-B-C-AAZ0014-D-E01
AQQ-B-C-AQQ0032-D-E01
ADD-B-C-D-ADD0001-D-E01
AAA-B-C-AAA0012-D-E01
我想要以下结果:预期结果:
ART0015
ADC00112
AEE00011
AQW0013
AAZ0014
AQQ0032
ADD0001
AAA0012
我使用了以下正则表达式代码,但由于第7条记录不在第三个破折号中,因此我没有得到预期的结果。它在第四个破折号中。
df["A"].str.extract(r'^(?:[^-]*-){3}\s*([^-]+)', expand=False)
0 ART0015
1 ADC00112
2 AEE00011
3 AQW0013
4 AAZ0014
5 AQQ0032
6 D
7 AAA0012
使用Series.str.extract
通过搜索3个字母后面4-5
的数字:
In [477]: df['col'] = df['col'].str.extract(r'([a-zA-Z]{3}\d{4,5})')
In [478]: df
Out[478]:
0 ART0015
1 ADC00112
2 AEE00011
3 AQW0013
4 AAZ0014
5 AQQ0032
6 ADD0001
7 AAA0012
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句