Python 将列中的字符串拆分为多行

Python 将列中的字符串拆分为多行,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有以下数据帧: d = {'col1':['a','b','c'],'col2':['x1;x2;x3','x5','x6'],'col3':['y1','y2,y3,y4','y5']} df = pd.DataFrame(d) 我想选择一列并将其拆分为多行,例如,如果选择col2,我希望结果是以下内容的输出: d = {'col1':['a','a','a','b','c'],'col2':['x1','x2','x3','x5','x6'],'col3':['y1','y1','y1'

我有以下数据帧:

d = {'col1':['a','b','c'],'col2':['x1;x2;x3','x5','x6'],'col3':['y1','y2,y3,y4','y5']}
df = pd.DataFrame(d)
我想选择一列并将其拆分为多行,例如,如果选择col2,我希望结果是以下内容的输出:

d = {'col1':['a','a','a','b','c'],'col2':['x1','x2','x3','x5','x6'],'col3':['y1','y1','y1','y2,y3,y4','y5']}
df = pd.DataFrame(d)
如果我选择col3,我希望:

d = {'col1':['a','b','b','b','c'],'col2':['x1;x2;x3','x5','x5','x5','x6'],'col3':['y1','y2','y3','y4','y5']}
df = pd.DataFrame(d)
请注意,在col2中,x由;而在col3中,y由、,。我已经试过了。爆炸,但没有得到我上面显示的结果

df=df.replace(regex=r'[^\w]',value=',')#replace any punctuation with comma
df=df.assign(col2=df['col2'].str.split(',')).explode('col2')#Explode column2