2017-06-19 6 views
2

pandasデータフレームをリストに変換したい。 たとえば、私は以下のようなデータフレームを持っており、すべての列を含むリストを作成したいと考えています。pandasデータフレームを列ベースのオーダーリストに変換する

データフレーム(DF)

A B C 
0 4 8 
1 5 9 
2 6 10 
3 7 11 

期待される結果私はdf.values.tolist()を使用する場合、それは以下のように行ベースの順序リストに戻ります

[[0,1,2,3], [4,5,6,7], [8,9,10,11]] 

[[0,4,8], [1,5,9], [2,6,10], [3,7,11]] 

データフレームを転置することは可能ですが、より良い解決策があるかどうかを知りたいと思います。

答えて

3

私は最も単純なのは転置だと思います。

使用Tまたはnumpy.ndarray.transpose

df1 = df.T.values.tolist() 
print (df1) 
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]] 

または:

df1 = df.values.transpose().tolist() 
print (df1) 
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]] 

リスト内包のもう一つの答えは、John Galtありがとう:

L = [df[x].tolist() for x in df.columns] 
+0

は私が「T知りませんでした'関数を使用する必要があると思っていましたが、非常に単純な転置を提供するようです(私はzip fまたは転置)。あなたの答えをありがとう。 – z991

+0

非常に短いので、私はこの機能が好きです;) – jezrael

+2

私は通常上記のオプションも使用します。あなたが別のものを探しているなら、あなたはdf.columnsの 'xに対して' df [x] .tolist() – Zero

関連する問題