Reputation: 113
for eg.
Input Data frame
Name Subjects
Ramesh Maths,Science
Rakesh MAths,Science,Social Studies
John Social Science, Lietrature
Output Data frame
Name Subject1 Subject2 Subjects3
Ramesh Maths Science NaN
Rakesh MAths Science Social Studies
John Social Science Literature Nan
Upvotes: 1
Views: 48
Reputation: 394081
You can create a new df from the result of str.split
and then concat
them:
In [66]:
subjects = df['Subjects'].str.split(',', expand=True)
subjects
Out[66]:
0 1 2
0 Maths Science None
1 MAths Science Social Studies
2 Social Science Lietrature None
In [71]:
subjects.columns = ['Subject ' + str(x + 1) for x in range(len(subjects.columns))]
subjects
Out[71]:
Subject 1 Subject 2 Subject 3
0 Maths Science None
1 MAths Science Social Studies
2 Social Science Lietrature None
In [74]:
concatenated = pd.concat([df,subjects], axis=1)
concatenated.drop('Subjects',axis=1,inplace=True)
concatenated
Out[74]:
Name Subject 1 Subject 2 Subject 3
0 Ramesh Maths Science None
1 Rakesh MAths Science Social Studies
2 John Social Science Lietrature None
Upvotes: 2