2016-06-30 10 views
2

Ich würde gerne wissen, ob es eine Methode oder ein Python-Paket gibt, die mich dazu bringen können, einen großen Datensatz zu verwenden, ohne es in RAM zu schreiben.Verwenden Sie eine Festplatte anstelle von RAM in Python

Ich verwende auch Pandas für die statistische Funktion.

brauche ich Zugriff auf den gesamten Datensatz zu haben, weil viele statistische Funktionen den gesamten Datensatz braucht glaubwürdige Ergebnisse zurückzukehren.

Ich verwende PyDev (mit Dolmetscher Python 3.4) auf LiClipse Windows 10.

+0

Willkommen bei stackoverflow. Als Erstes sollten Sie ["Was kann ich hier fragen?"] (Http://stackoverflow.com/help/on-topic) lesen: "Fragen, die uns auffordern, ein Buch, ein Tool, eine Softwarebibliothek oder ein Tutorial zu empfehlen oder zu finden oder andere Off-Site-Ressourcen sind Off-Topic ". Versuchen Sie nach Speicherzuordnungen in Python, Pandas und ähnlichem zu suchen. –

+0

Willkommen bei stackoverflow. Gib uns mehr Details darüber, was du genau brauchst oder akzeptiere eine Antwort auf das was du bisher bekommen hast. – SerialDev

Antwort

1

Sie alternativ Sframes, Dask für große Daten-Set Unterstützung nutzen könnten oder alternativ Pandas und/Iterierte in Stücke lesen, um zu minimieren RAM-Nutzung. Auch lohnt sich ein Blick auf die blaze Bibliothek

lesen in Stücke mit:

chunksize = 10 ** 6 
for chunk in pd.read_csv(filename, chunksize=chunksize): 
process(chunk) 
+0

OK, danke, aber jetzt ist das Problem anders, mit Dask habe ich den Ram-Verbrauch minimiert, aber jetzt werde ich Pandas Statistikfunktionen verwenden und mit Dask kann ich nicht alle benutzen. Wie kann ich? Vielen Dank –

0

Wenn alles, was Sie brauchen, ist eine Virtualisierung der Platte als großen RAM-Speicher Sie auf dem System eine Swap-Datei einrichten könnten . Der Kernel tauscht dann automatisch die Seiten nach Bedarf aus und verwendet Heuristiken, um herauszufinden, welche Seiten getauscht werden sollen und welche auf der Festplatte bleiben sollen.

+0

Vielen Dank, Ihr Vorschlag ist auch nützlich, es gibt eine einfache Methode, dies in Windows zu tun? Vielen Dank –

Verwandte Themen