2017-09-23 3 views
2

Ich möchte zwei numpy Array zu einem DataFrame mit zwei Spalten konvertieren. Das erste numpy Array 'Bilder' hat die Form 102, 1024. Das zweite numpy Array 'label' ist die Form (1020,)Konvertieren Sie zwei numpy Array zu Datenrahmen

Mein Kern-Code ist:

images=np.array(images) 
label=np.array(label) 
l=np.array([images,label]) 
dataset=pd.DataFrame(l) 

Aber es stellt sich heraus, ein Fehler, dass zu sagen sein:

ValueError: could not broadcast input array from shape (1020,1024) into shape (1020) 

Was soll ich tun um diese zwei numply array in zwei Spalten in einem Datenrahmen zu konvertieren?

+0

Mögliches Duplikat enthält von [Kombinieren von NumPy-Arrays] (https://stackoverflow.com/questions/6740311/combining-numpy-arrays) – Grigoriy

Antwort

1

Sie können sie nicht einfach stapeln, besonders wenn Sie sie als unterschiedliche Spalten haben wollen, da Sie kein 2D-Array in eine Spalte eines DataFrames einfügen können, also müssen Sie es in etwas anderes konvertieren, zum Beispiel ein list.

So etwas wie dies funktionieren würde:

import pandas as pd 
import numpy as np 
images = np.array(images) 
label = np.array(label) 
dataset = pd.DataFrame({'label': label, 'images': list(images)}, columns=['label', 'images']) 

Dieses ein DataFrame mit 1020 Zeilen schaffen und 2 Spalten, wobei jedes Element in der zweiten Spalte 1D-Arrays der Länge 1024.

+0

@YZ Kein Problem. Bitte vergessen Sie nicht, [accept] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) die hilfreichste Antwort zu akzeptieren, um Ihr Problem als gelöst zu markieren. :) – MSeifert

Verwandte Themen