Ich habe ein Numpy-Array, das aus einer Liste von Listen besteht und ein zweidimensionales Array mit Zeilenbeschriftungen und Spaltennamen darstellt, wie unten gezeigt:
data = array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]])
Ich möchte, dass der resultierende DataFrame Row1 und Row2 als Indexwerte und Col1, Col2 als Headerwerte enthält
Ich kann den Index wie folgt angeben:
df = pd.DataFrame(data,index=data[:,0]),
Ich bin mir jedoch nicht sicher, wie ich Spaltenüberschriften am besten zuweisen soll.
Antworten:
Sie müssen angeben
data
,index
undcolumns
zumDataFrame
Konstruktor, wie in:Bearbeiten : Wie im @ joris-Kommentar müssen Sie möglicherweise oben ändern
np.int_(data[1:,1:])
, um den richtigen Datentyp zu erhalten.quelle
DataFrame
keine "Verknüpfung"? Dies ist im Grunde die Artcsv
und Weise, wie s geladen werden - und kann von der Standardbehandlung für viele CSV-Reader verwaltet werden. Eine analoge Struktur für df's wäre nützlich.Hier ist eine leicht verständliche Lösung
quelle
Series
Namen manuell angeben . Das ist nicht skalierbar.Ich stimme Joris zu. Es scheint, als ob Sie dies anders machen sollten, wie bei numpy record arrays . Wenn Sie "Option 2" aus dieser großartigen Antwort heraus ändern , können Sie dies folgendermaßen tun:
quelle
Dies kann einfach mithilfe von from_records von pandas DataFrame erfolgen
quelle
data = array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]])
. H.quelle
Hinzufügen zur Antwort von @ behzad.nouri - Wir können eine Hilfsroutine erstellen, um dieses häufige Szenario zu behandeln:
Probieren wir es aus:
quelle