在熊猫数据框中使用定界符将列拆分为未知列数

时间:2020-04-07 07:59:31

标签: pandas

我的这张表带有字符串定界符“ +”

ID  Products                
1   A + B + C + D + E ... 
2   A + F + G
3   X + D 

我想以这种格式返回

ID  Products                 Product 1  Product 2  Product 3 Product 4 Product 5 product... 
1   A + B + C + D + E ...      A           B          C          D          E       ...
2   A + F + G                  A           F          G
3   X + D                      X           D
1   D + C + C + D + E          D           C          C          D          E      

如何在Pandas Dataframe中重现此内容?

1 个答案:

答案 0 :(得分:1)

Series.str.split与正则表达式O(n^2)一起使用-表示一个或多个空格,转义的'\s+\+\s+',一个或多个空格,然后用DataFrame.add_prefix更改列名并最后添加到由DataFrame.join原创:

+

还可以根据需要更改列名:

df1 = df['Products'].str.split('\s+\+\s+', expand=True).add_prefix('Product').fillna('')
df = df.join(df1)
print (df)
   ID           Products Product0 Product1 Product2 Product3 Product4
0   1  A + B + C + D + E        A        B        C        D        E
1   2          A + F + G        A        F        G                  
2   3              X + D        X        D