Search code examples
pythonpandassplitdata-cleaning

Split a column of values delimited by a space into separate columns for each value in python


How can I convert the dataset

a    |    a b c d 
s    |    e f g h
f    |    i j k l

to

a | a | b | c | d
s | e | f | g | h
f | i | j | k | l

Solution

  • A simpler way is using expand=True argument.

    # sample data
    df = pd.DataFrame({'c1':['a','b','c'], 'c2':['a b c d','e f g h','i j k l']})
    
    # transform into multiple columns
    df = pd.concat([df['c1'],df['c2'].str.split(' ', expand=True)], axis=1)
    
    print(df)
    
      c1  0  1  2  3
    0  a  a  b  c  d
    1  b  e  f  g  h
    2  c  i  j  k  l