2016-08-11 53 views
0

我需要在列表中列出的數組列表的轉換幫助成數據幀Coverting名單列表的數組列表到數據幀

我的數據是這樣的

[array([[ 0.01568627, 0.01568627, 0.01176471], 
    [ 0.01176471, 0.01176471, 0.01176471], 
    [ 0.01176471, 0.01176471, 0.01176471], 
    ..., 
    [ 0.05098039, 0.05098039, 0.05098039], 
    [ 0.04705882, 0.05098039, 0.04705882], 
    [ 0.05098039, 0.05098039, 0.04705882]]), array([[ 0.01568627, 0.01568627, 0.01568627], 
    [ 0.01176471, 0.01568627, 0.01176471], 
    [ 0.01176471, 0.01568627, 0.01568627], 
    ..., 
    [ 0.05490196, 0.05098039, 0.05098039], 
    [ 0.05098039, 0.05490196, 0.05098039], 
    [ 0.05098039, 0.05098039, 0.05098039]]) 

當我試圖DF = pd.DataFrame(LST),沒有工作

我試圖讀取圖像,並把它變成一個列表

我的代碼是這樣

for filename in files: 
img = misc.imread(filename) 
img = img[::2, ::2] 
X = (img/255.0).reshape(-1, 3) 
lst.append(X) 

我得到上面的數據,當我提前打印LST

謝謝!

+0

期望輸出的形狀是什麼? – ayhan

+0

其實我讀的圖像,並將它們存儲爲list.My碼ID像這樣的文件名中的文件: IMG = misc.imread(文件名) IMG = IMG [:: 2:2] X =(img/255.0).reshape(-1,3) lst.append(X) –

+0

確定但是應該如何返回DataFrame?在這個列表中你有2個數組,這些數組是二維的。一個DataFrame也是二維的,所以對於二維數組,你需要做一些整形(使用multiindex,concat等)。 – ayhan

回答

0

考慮與列表理解中的pd.concat()連接。請注意,您將失去兩位小數的精確度,以適應float64 dtype。下面將輸出一個3列數據幀:

from numpy import array 
import pandas as pd 

lst = [array([[ 0.01568627, 0.01568627, 0.01176471], 
       [ 0.01176471, 0.01176471, 0.01176471], 
       [ 0.01176471, 0.01176471, 0.01176471],    
       [ 0.05098039, 0.05098039, 0.05098039], 
       [ 0.04705882, 0.05098039, 0.04705882], 
       [ 0.05098039, 0.05098039, 0.04705882]]), 
     array([[ 0.01568627, 0.01568627, 0.01568627], 
       [ 0.01176471, 0.01568627, 0.01176471], 
       [ 0.01176471, 0.01568627, 0.01568627],    
       [ 0.05490196, 0.05098039, 0.05098039], 
       [ 0.05098039, 0.05490196, 0.05098039], 
       [ 0.05098039, 0.05098039, 0.05098039]])] 


df = pd.concat([pd.DataFrame(i) for i in lst]).reset_index(drop=True) 

print(df) 
#   0   1   2 
# 0 0.015686 0.015686 0.011765 
# 1 0.011765 0.011765 0.011765 
# 2 0.011765 0.011765 0.011765 
# 3 0.050980 0.050980 0.050980 
# 4 0.047059 0.050980 0.047059 
# 5 0.050980 0.050980 0.047059 
# 6 0.015686 0.015686 0.015686 
# 7 0.011765 0.015686 0.011765 
# 8 0.011765 0.015686 0.015686 
# 9 0.054902 0.050980 0.050980 
# 10 0.050980 0.054902 0.050980 
# 11 0.050980 0.050980 0.050980 
+0

它的工作。謝謝! –