2016-08-11 12 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]]) 

のようなものである場合にはI 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

実際に私は画像を読んでいて、リストとして保存しています。ファイル内のファイル名には次のようなコードIDがあります。 img = misc.imread(ファイル名) img = img [:: 2、:: 2] X =(img/255.0).reshape(-1,3) lst.append(X) –

+0

しかし、返されるDataFrameはどのように見えるのですか?このリストには2つの配列があり、これらの配列は2次元です。 DataFrameも2次元であるため、2次元配列の場合は、マルチインデックス、コンカットなどで再整形する必要があります。 – ayhan

答えて

0

リストの理解からpd.concat()と連結することを検討してください。あなたはfloat64dtypeに合うように2小数点以下のわずかな精度を失うことに注意してください。以下は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

それは働いた。ありがとう! –

関連する問題