Pandas 按数据帧中的分隔符将列拆分为未知数量的列
我有一个带字符串分隔符“+”的表 我想以这种格式返回Pandas 按数据帧中的分隔符将列拆分为未知数量的列,pandas,Pandas,我有一个带字符串分隔符“+”的表 我想以这种格式返回 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
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
我如何在熊猫数据帧中重现这一点 与regex一起使用'\s++\s++'
-它表示一个或多个空格、转义的++
、一个或多个空格,然后更改列名,最后添加到原始列:
如有必要,还可以更改列名:
d = lambda x: f'Product{x+1}'
df = (df.join(df['Products'].str.split('\s+\+\s+', expand=True)
.rename(columns=d)
.fillna('')))
print (df)
ID Products Product1 Product2 Product3 Product4 Product5
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
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
d = lambda x: f'Product{x+1}'
df = (df.join(df['Products'].str.split('\s+\+\s+', expand=True)
.rename(columns=d)
.fillna('')))
print (df)
ID Products Product1 Product2 Product3 Product4 Product5
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