熊猫的备忘录

Yar*_*riv 9 python memoization package pandas

我有冗长的计算,我重复了很多次.因此,我想与熊猫一起使用memoization(诸如jugjoblib之类的包).问题是包是否会将Pandas DataFrames作为方法参数进行记忆.

有人试过吗?有没有其他推荐的方案/方式来做到这一点?

lui*_*dro 7

水壶的作者:水壶工作正常.我只是尝试了以下它,它的工作原理:

from jug import TaskGenerator
import pandas as pd
import numpy as np


@TaskGenerator
def gendata():
    return pd.DataFrame(np.arange(343440).reshape((10,-1)))

@TaskGenerator
def compute(x):
    return x.mean()

y = compute(gendata())
Run Code Online (Sandbox Code Playgroud)

它没有尽可能高效,因为它只是pickle内部使用它DataFrame(虽然它在运行中压缩它,所以它在内存使用方面并不可怕;只是比它可能慢).

我会接受一个更改,它将这些保存为jug目前为numpy数组所做的特殊情况:https://github.com/luispedro/jug/blob/master/jug/backends/file_store.py#L102