0

I have looked at multiple stack overflow questions similar to this, for example, this one and this one. However, my situation is a bit more tedious.

I have column consisting of the following strings

 lineup
0 'FLEX Nick Mullens FLEX Raheem Mostert FLEX Deebo Samuel FLEX Cole Beasley FLEX Jordan Reed CPT Robbie Gould'
1 'FLEX Nick Mullens FLEX Brandon Aiyuk FLEX Cole Beasley FLEX Tyler Bass FLEX Robbie Gould CPT Raheem Mostert'
2 'FLEX Josh Allen FLEX Stefon Diggs FLEX Cole Beasley FLEX Devin Singletary FLEX Richie James CPT Bills'
...

I would like to transform that string into multiple rows, like so:

     FLEX1           FLEX2         FLEX3          FLEX4           FLEX5         CPT
0 Nick Mullens  Raheem Mostert  Deebo Samuel  Cole Beasley     Jordan Reed   Robbie Gould
1 Nick Mullens  Brandon Aiyuk   Cole Beasley  Tyler Bass       Robbie Gould  Raheem Mostert
2 Josh Allen    Stefon Diggs    Cole Beasley  Devin Singletary Richie James  Bills

So, I would like to expand the FLEX and CPT into separate columns, and the following name should be placed in the according column.

I know how to use str.split(), but I'm not sure how to turn part of the string into new columns. Any help is appreciated, thanks!

bismo
  • 1,257
  • 1
  • 16
  • 36

1 Answers1

3

Use str.slit with expand:

df.lineup.str.split('FLEX|CPT',expand=True)
Quang Hoang
  • 146,074
  • 10
  • 56
  • 74