Pandas: Wo ist das Speicherleck hier?

Ich stelle mich dem Problem von Speicherlecks mitpandas Bibliothek inPython. Ich erschaffepandas.dataframe Objekte in meiner Klasse und ich haben eine Methode, die die Größe des Datenrahmens gemäß meinen Bedingungen ändert. Nachdem ich die Größe des Datenrahmens geändert und ein neues Pandas-Objekt erstellt habe, habe ich die ursprüngliche Datei pandas.dataframe in meiner Klasse neu geschrieben. Die Speichernutzung ist jedoch sehr hoch, selbst nachdem die Anfangstabelle erheblich reduziert wurde. Code für ein kurzes Beispiel (ich habe keinen Prozessmanager geschrieben, siehe Taskmanager):

import time, string, pandas, numpy, gc
class temp_class ():

    def __init__(self, nrow = 1000000, ncol = 4, timetest = 5):

        self.nrow = nrow
        self.ncol = ncol
        self.timetest = timetest

    def createDataFrame(self):

        print('Check memory before dataframe creating')
        time.sleep(self.timetest)
        self.df = pandas.DataFrame(numpy.random.randn(self.nrow, self.ncol),
            index = numpy.random.randn(self.nrow), columns = list(string.letters[0:self.ncol]))
        print('Check memory after dataFrame creating')
        time.sleep(self.timetest)

    def changeSize(self, from_ = 0, to_ = 100):

        df_new = self.df[from_:to_].copy()
        print('Check memory after changing size')
        time.sleep(self.timetest)

        print('Check memory after deleting initial pandas object')
        del self.df
        time.sleep(self.timetest)

        print('Check memory after deleting copy of reduced pandas object')
        del df_new
        gc.collect()
        time.sleep(self.timetest)

if __name__== '__main__':

    a = temp_class()
    a.createDataFrame()
    a.changeSize()

Vor dem Erstellen des Datenrahmens habe ich ca. 15 MB Arbeitsspeicher

Nach dem Erstellen - 67mb

Nach dem Ändern der Größe - 67 mb

Nach dem Löschen des ursprünglichen Datenrahmens - 35 MB

Nach dem Löschen der reduzierten Tabelle - 31 mb.

16 mb?

Ich verwende Python 2.7.2 (x32) unter Windows 7 (x64), Pandas.Ausführung ist 0,7,3. taub.Ausführung ist 1.6.1

Antworten auf die Frage(1)

Ihre Antwort auf die Frage