Python 3.x pandas.series.split(';';,expand=True)和列名

Python 3.x pandas.series.split(';';,expand=True)和列名,python-3.x,pandas,split,Python 3.x,Pandas,Split,我有一个带有两个字符串列的Pandas数据框,我想在空间上拆分,如下所示: df = A B 0.1 0.5 0.01 ... 0.3 0.1 0.4 ... 我想拆分这两列,并为尽可能多的值形成新列,这是拆分后的结果 因此,结果是: df = A1 A2. A3 ... B1

我有一个带有两个字符串列的Pandas数据框,我想在空间上拆分,如下所示:

 df =
        A                                   B
        0.1  0.5  0.01 ...                    0.3  0.1  0.4 ...
我想拆分这两列,并为尽可能多的值形成新列,这是拆分后的结果

因此,结果是:

df =
       A1      A2.    A3  ...               B1        B2        B3
       0.1     0.5   0.01 ...               0.3       0.1       0.4
目前,我正在做:

 df = df.join(df['A'].str.split(' ', expand = True)
 df = df.join(df['B'].str.split(' ', expand = True)
但是,我得到了以下错误:

 columns overlap but no suffix specified
这是因为我猜第一个和第二个拆分的列名称重叠

因此,我的问题是如何通过为多个拆分提供列名或后缀来拆分多个列?

按拆分的列使用列名:

df = df.join(df['A'].str.split(expand = True).add_prefix('A'))
df = df.join(df['B'].str.split(expand = True).add_prefix('B'))
print (df)
              A            B   A0   A1    A2   B0   B1   B2
0  0.1 0.5 0.01  0.3 0.1 0.4  0.1  0.5  0.01  0.3  0.1  0.4
另一个想法是使用列表理解:

cols = ['A','B']
df1 = pd.concat([df[c].str.split(expand=True).add_prefix(c) for c in cols], axis=1)
print (df1)
    A0   A1    A2   B0   B1   B2
0  0.1  0.5  0.01  0.3  0.1  0.4
对于“添加所有原始列”:

df = df.join(df1)

嗨@jezrael,除了这两列之外,我在数据框中还有其他列。我应该在问题中提到。你的解决方案目前还不如我的有效。在第一种情况下,后缀被添加到所有其他列中。在第二种情况下,所有其他列都将从数据帧中删除。是否有一种方法可以考虑到我的数据帧中还有其他列的事实?@SumitSidana-在第一个解决方案中是好的(最后
?没有最后一个
,所以在所有列中都添加了前缀?