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第三列为依此类推。我该怎么做?
您可以将列表转换为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)
不如@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
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)