如何正确应用pandas系列提取方法?

How to apply pandas series extract method correctly?

想用破折号和

分隔每行值

看了Andy Hayden's回答后

我将 U33A, A

分组

使用(?P<Line>^\d{1,2}|^.|.*, .)

行中 U-2022W-ZZ5891 等。等等

并尝试使用 df[0] = df[0].str.extract(r'(?P<Line>^\d{1,2}|^.|.*, .)') 进行申请 并且不确定如何继续分组以从开始到结束。

col0
U-2022W-ZZ5891
U-2014X-7073
U-2010X-45
33-2010X-ZZ45
A, A-2010X-45
U-1996W-M-ZZ5891

从这里⬆️(向上箭头)到这里⬇️(向下箭头)

col0 col1 col2 col3
U 2022W ZZ5891
U 2014X 7073
U 2010X 45
33 2010X ZZ45
A, A 2010X 45
U 1996W M ZZ5891

您可以使用这个正则表达式:

new_df = df['col0'].str.extract('(.+?)-(.+?)-(?:(.+?)-)?(.+)').fillna('')

输出:

>>> new_df
      0      1  2       3
0     U  2022W     ZZ5891
1     U  2014X       7073
2     U  2010X         45
3    33  2010X       ZZ45
4  A, A  2010X         45
5     U  1996W  M  ZZ5891