OK Ich experimentiere mit Pandas, um eine 30GB CSV-Datei mit 40 Millionen + Zeilen und 150+ Spalten in HDFStore zu laden. Die Mehrzahl der Spalten sind Strings, gefolgt von Zahlen und Daten.Pandas HDFStore Datenrahmen aus dem Speicher entladen
Ich habe nie wirklich numpy, Pandas oder pytables verwendet vor, aber haben mit Datenrahmen in R. rumgespielt
Ich bin derzeit nur eine Beispieldatei von rund 20.000 Zeilen zu HDFStore speichern. Wenn ich versuche, um die Tabelle zu lesen von HDFStore wird die Tabelle in dem Speicher und Speichernutzung von ~ 100 MB steigt geladen
f=HDFStore('myfile.h5')
g=f['df']
Dann lösche ich die Variable, die den Datenrahmen enthält:
del g
An der Stelle, die Speichernutzung verringert sich um etwa 5 MB
Wenn ich die Daten erneut in g g=f['df']
Verwendung laden, nimmt die Speichernutzung eine weitere 100MB bis
Clea nup passiert nur, wenn ich das Fenster schließe.
Die Art, wie die Daten organisiert sind, werde ich wahrscheinlich die Daten in einzelne Tabellen mit der maximalen Tabellengröße um 1GB teilen, die in den Speicher passen und dann eins nach dem anderen verwenden können. Dieser Ansatz funktioniert jedoch nicht, wenn ich den Speicher nicht löschen kann.
Irgendwelche Ideen, wie ich das erreichen kann?
Sie haben das gelesen? (Zeigt eine Funktion zum Einlesen von Daten aus der CSV-Datei und zum Erstellen eines Speichers nach Blöcken, wobei auch das Datum analysiert wird): http://stackoverflow.com/questions/16110252/need-to-compare-yy-large-files-around -1-5GB-in-Python/16110391 # 16110391 – Mattijn
Sie müssen den Laden schließen. Es gibt umfangreiche Dokumentation der Verwendung von '' HDFStore'' [hier] (http://pandas.pydata.org/pandas-docs/dev/io.html#hdf5-pytables) – Jeff
irgendwelche Updates zu diesem Thema? Ich habe das gleiche Problem. und '' f.close() '' ändert nicht die Speicherverwendung in meinem Fall – sanguineturtle