【问题标题】:Splitting strings in a column into multiple rows将列中的字符串拆分为多行
【发布时间】:2020-11-13 02:16:19
【问题描述】:

我有以下数据框:

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 由, 分隔。我试过.explode,但没有给出我上面显示的结果。

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:
    df=df.replace(regex=r'[^\w]',value=',')#replace any punctuation with comma
    df=df.assign(col2=df['col2'].str.split(',')).explode('col2')#Explode column2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      相关资源
      最近更新 更多