2013-06-11 3 views
9

Gibt es eine einfachere Möglichkeit, eine Excel-Datei direkt in ein Numpy-Array zu laden?Excel-Datei in ein numpfförmiges 2D-Array laden

Ich habe die Autoloading-Funktion numpy.genfromtxt von numpy Dokumentation angeschaut, aber es lädt Excel-Dateien nicht direkt.

array = np.genfromtxt("Stats.xlsx") 
ValueError: Some errors were detected ! 
Line #3 (got 2 columns instead of 1) 
Line #5 (got 5 columns instead of 1) 
...... 

Im Moment bin ich mit openpyxl.reader.excel mit der Excel-Datei zu lesen und dann fügen Sie 2D-Arrays numpy. Dies scheint ineffizient zu sein. Idealerweise möchte ich Excel-Datei direkt in numpy 2D-Array geladen werden müssen.

Antwort

11

Ehrlich, wenn Sie mit heterogenen Daten arbeiten (wie Tabellenkalkulationen wahrscheinlich enthalten), ist die Verwendung einer pandas.DataFrame eine bessere Wahl als die direkte Verwendung von numpy.

Während pandas in gewissem Sinne nur ein Wrapper um numpy ist, behandelt es heterogene Daten sehr sehr schön. (Neben einer Menge anderer Dinge ... Für "tabellenartige" Daten ist es der Goldstandard in der Python-Welt.)

Wenn Sie sich für diese Route entscheiden, verwenden Sie einfach pandas.read_excel.

+0

Ich würde nur hinzufügen, dass, um einen Datenrahmen zu einem Numpy 2D-Array zu konvertieren Sie einfach np.asarray (your_data_frame_here) verwenden können. – Tahlor