MemoryError, wenn ich Zusammenführen von zwei Pandas Daten-frames.

Suchte ich fast alle über das internet und irgendwie keiner der Ansätze scheint zu funktionieren in meinem Fall.

Habe ich zwei große csv-Dateien (mit jeweils einer Mio+ Zeilen-und über 300-400MB groß). Sie sind be-Ordnung in die Daten-frames mit der read_csv Funktion, ohne dass das chunksize parameter.
Ich trat sogar bestimmte kleinere Operationen auf diese Daten, wie die neue Spalte generation, Filterung, etc.

Jedoch, wenn ich versuche, Sie zu verschmelzen diese beiden frames, bekomme ich eine MemoryError. Ich habe sogar versucht, die Verwendung von SQLite zu erreichen, die Zusammenführen, aber vergeblich. Der Vorgang dauert ewig.

Mir ist ein Windows 7 PC mit 8GB RAM. Die Python-version 2.7

Danke.

Edit: ich habe versucht, chunking Methoden zu. Wenn ich dies mache, habe ich nicht bekommen MemoryError, aber die RAM-Nutzung explodiert und mein system stürzt ab.

Welchen code verwenden Sie, um Sie Zusammenführen?
merge_df = pandas.merge(df1, df2, left_on = "Colname1", right_on = "Colname2")
Verwenden Sie eine 64-bit-version von Python?
Ja. Ich bin mit einem 64-bit-Python 2.7. Derzeit Anaconda 4.3 (mit Spyder 3) auf meinem system installiert ist.
Könnten Sie fügen die ersten paar Zeilen jedes dataframe? Chancen sind, wenn Sie zu verschmelzen, unterscheidet sich von der operation, die Sie bestimmt. (Aus meiner Erfahrung, die meisten join-Operationen mit dataframes weniger als 1 GB komplett in einer Zeitskala von Sekunden, aber natürlich hängt dies von der Art der Verknüpfung sowie die Struktur der Daten.)

InformationsquelleAutor Ronit Chidara | 2017-11-20

Schreibe einen Kommentar