this code should help
it can split any column of dataframe by any character you want and return splited dataframe.
class Seperator:
    row_list=[]
    def __init__(self,df,column_name,split_char):
        df.apply(lambda row:self.seperate(row,column_name,split_char),axis=1)
            
    def seperate(self,row,column_name,split_char):
        items = row[column_name].split(split_char)
        row_dic = dict(row)
        for item in items:
            row_dic[column_name] = item
            tmp = {key:row_dic[key] for key in row_dic}
            self.row_list.append(tmp)
        return row
    def dataframe(self):
        return pd.DataFrame(self.row_list)
now let's use this class:
df = pd.DataFrame({'col1':['a','b','c\nd\ne','f','g'],'col2':[123,234,345,456,567]})
df
col1    col2
0   a   123
1   b   234
2   c\nd\ne 345
3   f   456
4   g   567
after that :
seperator = Seperator(df,column_name='col1',split_char='\n')
seperator.dataframe()
col1    col2
0   a   123
1   b   234
2   c   345
3   d   345
4   e   345
5   f   456
6   g   567
enjoy.