如何将Pandas中的一列扩展为多列?

Liu*_*ong 3 python bigdata pandas scikit-learn

作为标题,我在熊猫中有一列(系列),每一行都是一个类似的列表[0,1,2,3,4,5]。每个列表有6个数字。我想将此列更改为6列,例如,[0,1,2,3,4,5]将变为6列,其中0第一列为1第二列,2第三列为依此类推。我该怎么做?

jez*_*ael 7

您可以将列表转换为numpy arraybyvalues然后使用DataFrame构造函数:

df = pd.DataFrame({'a':[[0,1,2,3,4,5],[0,1,2,3,4,5]]})
print (df)
                    a
0  [0, 1, 2, 3, 4, 5]
1  [0, 1, 2, 3, 4, 5]

df1 = pd.DataFrame(df['a'].values.tolist())
print (df1)
   0  1  2  3  4  5
0  0  1  2  3  4  5
1  0  1  2  3  4  5
Run Code Online (Sandbox Code Playgroud)
cols = list('abcdef')
df1 = pd.DataFrame(df['a'].values.tolist(), columns=cols)
print (df1)
   a  b  c  d  e  f
0  0  1  2  3  4  5
1  0  1  2  3  4  5
Run Code Online (Sandbox Code Playgroud)


piR*_*red 5

不如@jezrael的解决方案快。但优雅:-)

applypd.Series

df.a.apply(pd.Series)

   0  1  2  3  4  5
0  0  1  2  3  4  5
1  0  1  2  3  4  5
Run Code Online (Sandbox Code Playgroud)

要么

df.a.apply(pd.Series, index=list('abcdef'))

   a  b  c  d  e  f
0  0  1  2  3  4  5
1  0  1  2  3  4  5
Run Code Online (Sandbox Code Playgroud)

  • 大数据-这将非常慢;) (2认同)