2017-06-19 84 views
2

我想將pandas數據框轉換爲列表。 例如,我有一個如下所示的數據框,並且我想列出所有列。將pandas數據框轉換爲基於列的訂單列表

數據幀(DF)

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

預期結果

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

如果我使用df.values.tolist(),它會在基於行的順序列表返回象下面這樣。

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

可以轉置數據幀,但我想知道是否有更好的解決方案。

回答

3

我認爲simpliest是轉置。

使用Tnumpy.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 [x] .tolist()for df.columns]' – Zero

相關問題