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

时间:2017-03-21 07:03:00

标签: python pandas scikit-learn bigdata

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

3 个答案:

答案 0 :(得分:3)

您可以按values将列表转换为numpy array,然后使用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
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

答案 1 :(得分:3)

没有@ jezrael的解决方案快。但优雅: - )

带有apply

pd.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

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

答案 2 :(得分:0)

如果我理解你的问题,你正在寻找转置操作。

df = pd.DataFrame([1,2,3,4,5],columns='a')
# .T stands for transpose
print(df.T)