2015-04-30 84 views
4

如何將一個numpy數組轉換爲熊貓數據框?如何將一個numpy數組轉換爲熊貓數據框

例如:

test = np.array([[1,2],[2,3]]) 
test2 = np.array([[2,4],[2,5]]) 

這樣:

pd.DataFrame({'test':[[1,2],[2,3]], 
       'test2':[[2,4],[2,5]]}) 

    test test2 
0 [1, 2] [2, 4] 
1 [2, 3] [2, 5] 
+3

這將是更好的有*使用各自包含一個整數4個*單獨的列。這樣,你可以利用高效的矢量化操作,比如'sum()','diff()'等等。 –

+0

我想在它們中有列表,因爲我要從test和test2創建一個新列 –

+0

修改您的方法來處理單獨列中的單個值仍然是更好的做法。 –

回答

4

雖然可以使用在與NumPy陣列

In [85]: pd.DataFrame({'test':test.tolist(), 'test2':test2.tolist()}) 
Out[85]: 
    test test2 
0 [1, 2] [2, 4] 
1 [2, 3] [2, 5] 

計算可能會比完成同等計算快得多在其列包含Python列表的Pandas DataFrame上。

0

如果這些numpy的陣列具有相同的長度,然後Panel可以是優選的:

In [11]: p = pd.Panel({"test": test, "test2": test2}) 

In [12]: p 
Out[12]: 
<class 'pandas.core.panel.Panel'> 
Dimensions: 2 (items) x 2 (major_axis) x 2 (minor_axis) 
Items axis: test to test2 
Major_axis axis: 0 to 1 
Minor_axis axis: 0 to 1 

In [13]: p["test"] # a DataFrame 
Out[13]: 
    0 1 
0 1 2 
1 2 3 
相關問題