Ich habe eine gzip
, die etwa 90 GB ist. Dies ist gut innerhalb des Speicherplatzes, aber viel größer als RAM.Wie importiere ich eine gzip-Datei, die größer als RAM limit ist, in einen Pandas DataFrame? "Töte 9" Benutze HDF5?
Wie kann ich das in einen Pandas Datenrahmen importieren? Ich habe versucht, die folgenden in der Befehlszeile:
# start with Python 3.4.5
import pandas as pd
filename = 'filename.gzip' # size 90 GB
df = read_table(filename, compression='gzip')
jedoch nach einigen Minuten, Python schaltet sich ab mit Kill 9
.
Nachdem ich das Datenbankobjekt df
definiert hatte, plante ich, es in HDF5 zu speichern.
Was ist der richtige Weg, dies zu tun? Wie kann ich pandas.read_table()
verwenden, um dies zu tun?
Dank dafür! Sie passen den Parameter 'chunksize' an, abhängig davon, ob das Skript abstürzt (wie oben)? – JianguoHisiang
@ JianguoHisiang, ja, Sie können eine fundierte Vermutung machen ... Zum Beispiel, wenn Ihr Server 32 GB RAM hat und 1M ('10 ** 6') Zeilen DF benötigt 1 GB - Sie können es bis zu 20M erhöhen (' 2 * 10 ** 7') und testen Sie es und prüfen Sie, ob es Ihnen Geschwindigkeitsvorteile gibt oder nicht ... – MaxU
Die Eingabedatei 'filename.gzip' hat keine Kopfzeile. 'cols_to_index' bezieht sich auf Spalten, die im Datenrahmen bereits beschriftet sein müssen, richtig? Um dies für eine Header-lose Gzip-Datei zu tun, müssen Sie die Datenspalten in jeder Iteration bei 'pd.read_table()' oben indizieren? Das kann ineffizient sein ... – JianguoHisiang