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