Pandas: ¿dónde está la pérdida de memoria aquí?

Me enfrento al problema de las fugas de memoria usandopandas biblioteca enpitón. yo creopandas.dataframe Los objetos de mi clase y yo tengo un método que cambia el tamaño del marco de datos según mis condiciones. Después de cambiar el tamaño del marco de datos y de crear un nuevo objeto de pandas, reescribo pandas.dataframe original en mi clase. Pero el uso de la memoria es muy alto incluso después de reducir significativamente la tabla inicial. Algún código para el ejemplo corto (no escribí el administrador de procesos, vea el administrador de tareas):

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()

Antes de crear dataframe tengo aprox. 15 mb de uso de memoria

Después de crear - 67mb

Después de cambiar de tamaño - 67 mb

Después de eliminar el marco de datos original - 35 mb

Después de eliminar la tabla reducida - 31 mb.

16 mb?

Uso python 2.7.2 (x32) en la máquina con Windows 7 (x64), pandas.versión es 0.7.3. adormecidoversión es 1.6.1

Respuestas a la pregunta(1)

Su respuesta a la pregunta