2014-06-25 316 views
4

如何列表的列表轉換爲數據幀熊貓?移調大熊貓據幀

它不是coloumns的形式,但不是行的形式。

#!/usr/bin/env python 

from random import randrange 
import pandas 

data = [[[randrange(0,100) for j in range(0, 12)] for y in range(0, 12)] for x in range(0, 5)] 
print data 
df = pandas.DataFrame(data[0], columns=['B','P','F','I','FP','BP','2','M','3','1','I','L']) 
print df 

例如:

data[0][0] == [64, 73, 76, 64, 61, 32, 36, 94, 81, 49, 94, 48] 

我希望它顯示爲行,而不是coloumns。

目前它顯示somethign這樣

 B P F I FP BP 2 M 3 1 I L 
0 64 73 76 64 61 32 36 94 81 49 94 48 
1 57 58 69 46 34 66 15 24 20 49 25 98 
2 99 61 73 69 21 33 78 31 16 11 77 71 
3 41 1 55 34 97 64 98 9 42 77 95 41 
4 36 50 54 27 74 0 8 59 27 54 6 90 
5 74 72 75 30 62 42 90 26 13 49 74 9 
6 41 92 11 38 24 48 34 74 50 10 42 9 
7 77 9 77 63 23 5 50 66 49 5 66 98 
8 90 66 97 16 39 55 38 4 33 52 64 5 
9 18 14 62 87 54 38 29 10 66 18 15 86 
10 60 89 57 28 18 68 11 29 94 34 37 59 
11 78 67 93 18 14 28 64 11 77 79 94 66 

我想行和coloumns進行切換。此外,我如何爲所有5個主要列表做好準備?

這就是我所要的輸出看起來像其他coloumns也填寫。

 B P F I FP BP 2 M 3 1 I L 
0 64 
1 73 
1 76 
2 64 
3 61 
4 32 
5 36 
6 94 
7 81 
8 49 
9 94 
10 48 

不過。 df.transpose()不會幫助。

+0

轉置()似乎並不被幫助。重新索引也沒有。 – pistal

回答

3
import numpy 

df = pandas.DataFrame(numpy.asarray(data[x]).T.tolist(), 
         columns=['B','P','F','I','FP','BP','2','M','3','1','I','L']) 
+5

相同的想法,但也許更清潔寫作'df1 = pd.DataFrame(df.values.T,columns = df.columns)'? – chrisb

+0

但是,你將如何做清單列表? – pistal

+0

是否要處理所有5?:對於範圍內的x(len(data)):df = ...將每個附加到列表中,或者任何您想要處理的內容 – LFC

6

這是我想出了

data = [[[randrange(0,100) for j in range(0, 12)] for y in range(0, 12)] for x in range(0, 5)] 
print data 
df = pandas.DataFrame(data[0], columns=['B','P','F','I','FP','BP','2','M','3','1','I','L']) 
print df 
df1 = df.transpose() 
df1.columns = ['B','P','F','I','FP','BP','2','M','3','1','I','L'] 
print df1