2017-01-08 10 views
1

私は、フラットなグレースケール画像とラベルの2つの列でDataFrameを作成しています。パンダデータフレームto_csv書き込み[0 0 0 ...、0 0 0]

データフレームを作成した後は、すべて正しいものになり、すべてのイメージに適切な値が設定されます。しかし、私がcsvに出力すると、は文字通り1dイメージ配列を[0 0 0 ...、0 0 0]としてCSVに書き込みます。私が間違ってやっていることに関する考えは?

コードはおおよそ以下からなる:

images=[] 
labels=[] 

#Run the following in a loop 
image = ndimage.imread(image_file, flatten=True) 
image.resize((500,500), refcheck=False) 
image = np.ndarray.flatten(image) 
label = 'xyz' 
images.append(image) 
labels.append(label) 

#After the loop ends create a dataframe and save it 
df_images = pd.DataFrame({'image':images, 'label':labels}) 
df_images.to_csv('labeled_images.csv') 

.head()は、次の要約データを与える:データフレーム上の長さと最大値の

0 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... stemmed 
1 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... stemmed 
2 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... stemmed 
3 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... stemmed 

試験は、それが正しく充填のショー。

編集:これをcsvに保存する方法は柔軟ですが、画像のピクセルデータを保持する単一の列と画像の適切なラベルを保持する単一の列を使用することをお勧めします。主な目的は、画像を処理してピクセル値をcsvに保存して、分類子を実行するたびに再処理して読み込む必要がないようにすることです。

+0

あなたは本当にこのためにパンダが必要なのでしょうか?純粋なcsvソリューションはあなたにとって興味深いでしょうか? pandas csvが追加する余分なカウンター列が必要ですか? –

+0

これは、より多くのデータ処理が必要となり、最終的に画像をSklearnクラシファイアに送るため、パンダにデータをロードしたいと考えています。余分な列は必要なく、イメージとラベルだけが必要です。 – Charlie

+0

質問に 'df_images.head()'を含めることができますか? – MYGz

答えて

0

あなたは、別々の列に0と1のリストを展開し、元のデータフレームにマージし、リストの元の列を削除する必要があります。

expanded=pd.concat([df_images['image'].apply(pd.Series), df_images], axis=1) 
del expanded['image'] 
#expanded 
# 0 1 2 3 label 
#0 0 1 1 0 stemmed 
#1 1 0 0 0 stemmed 
関連する問題