2017-03-21 8 views
1

タイトルとして、私はパンダに1列(シリーズ)を持っていて、それの各列はのようなリストです。各リストには6つの数字があります。この列を6列に変更したいとします。たとえば、が最初の列、1が2番目、2が3番目となるように、[0,1,2,3,4,5]が6列になります。どうしたらいいですか?Pandasの1つの列を複数の列に展開するにはどうすればよいですか?

答えて

2

あなたは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 
0

を、あなたは転置操作を探しています。

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

しかし、私は1000行を持っている、と私は6つの個々の列にすべての行のそれぞれを転送したい... –

1

@ 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 

または

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

bigdataと - それは非常に遅くなります;) – jezrael

+0

@ jezraelはいそれは – piRSquared

関連する問題