Erstellen Sie Pandas DataFrame effizient aus einer großen Liste von Tupeln / Zeilen

Ich habe eine Datendatei geerbt, die im DTA-Format von Stata gespeichert wurde. Ich kann es mit ladenscikits.statsmodels genfromdta() Funktion. Dadurch werden meine Daten in ein eindimensionales NumPy-Array eingefügt, in dem jeder Eintrag eine Datenzeile ist, die in einem 24-Tupel gespeichert ist.

In [2]: st_time = time.time(); initialload = sm.iolib.genfromdta("/home/myfile.dta"); ed_time = time.time(); print (ed_time - st_time)
666.523324013

In [3]: type(initialload)
Out[3]: numpy.ndarray

In [4]: initialload.shape
Out[4]: (4809584,)

In [5]: initialload[0]
Out[5]: (19901130.0, 289.0, 1990.0, 12.0, 19901231.0, 18.0, 40301000.0, 'GB', 18242.0, -2.368063, 1.0, 1.7783716290878204, 4379.355, 66.17669677734375, -999.0, -999.0, -0.60000002, -999.0, -999.0, -999.0, -999.0, -999.0, 0.2, 371.0)

Ich bin neugierig, ob es einen effizienten Weg gibt, dies in einem Pandas DataFrame zu arrangieren. Nach dem, was ich gelesen habe, scheint es ziemlich ineffizient zu sein, einen DataFrame Zeile für Zeile aufzubauen ... aber welche Optionen stehen mir zur Verfügung?

Ich habe einen ziemlich langsamen ersten Durchgang geschrieben, bei dem jedes Tupel als einzeiliger DataFrame gelesen und angehängt wird. Ich frage mich nur, ob etwas anderes bekanntermaßen besser ist.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage