2013-10-25 48 views
32

我有一個這樣的熊貓數據幀:轉換在大熊貓一行到列表

admit gpa gre rank 
0 3.61 380  3 
1 3.67 660  3 
1 3.19 640  4 
0 2.93 520  4 

現在我想行的列表中大熊貓一樣:

[[0,3.61,380,3], [1,3.67,660,3], [1,3.19,640,4], [0,2.93,520,4]] 

我該怎麼辦它?請幫幫我。 非常感謝。

回答

45

可以使用iterrows實現這一目標:

temp=[] 

for row in df.iterrows(): 
    index, data = row 
    temp.append(data.tolist()) 

另外,您還可以使用apply

df.apply(lambda x: x.tolist(), axis=1) 

更新

看着這再次有一個內置的方法之後這也是最快的方法,在上調用 NP陣列:

In [62]: 
df.values.tolist() 

Out[62]: 
[[0.0, 3.61, 380.0, 3.0], 
[1.0, 3.67, 660.0, 3.0], 
[1.0, 3.19, 640.0, 4.0], 
[0.0, 2.93, 520.0, 4.0]] 
+0

Downvoter謹慎解釋 – EdChum

+0

的確如此,這些降價通常會讓我認爲我錯過了我的答案。現在不希望是這種情況。 –

+1

@RomanPekar我不這麼認爲,前段時間我提出了你的答案,我總是要求解釋,有時候我會得到答覆,有時連續降低投票的方式是相反的。很多時候沒有任何事情發生,這只是偶爾發生的事情,沒有什麼大不了的 – EdChum

19

,你可以做這樣的:

map(list, df.values) 
4

您可以使用內置的as_matrix方法對數據幀(參考: 1):

In [8]: 
df.as_matrix() 

Out[8]: 
array([[ 0.9, 7. , 5.2, ..., 13.3, 13.5, 8.9], 
    [ 0.9, 7. , 5.2, ..., 13.3, 13.5, 8.9], 
    [ 0.8, 6.1, 5.4, ..., 15.9, 14.4, 8.6], 
    ..., 
    [ 0.2, 1.3, 2.3, ..., 16.1, 16.1, 10.8], 
    [ 0.2, 1.3, 2.4, ..., 16.5, 15.9, 11.4], 
    [ 0.2, 1.3, 2.4, ..., 16.5, 15.9, 11.4]])