计算存储在数据帧中的延迟延迟对象

时间:2019-08-09 21:32:09

标签: python-3.x pandas dask dask-delayed

我正在寻找计算存储在数据帧中的许多dask delayed对象的最佳方法。我不确定是否应该将pandas数据帧转换为其中包含dask个对象的delayed数据帧,或者是否应该对{{ 1}}数据框。

一般而言,我将不胜感激,因为我在跨嵌套的for循环传递compute对象的逻辑上遇到了麻烦。

pandas

我不能在此数据帧上调用delayed,而不能在所有像这样的单元格上应用函数:import numpy as np import pandas as pd from scipy.stats import hypergeom from dask import delayed, compute steps = 5 sample = [int(x) for x in np.linspace(5, 100, num=steps)] enr_df = pd.DataFrame() for N in sample: enr = [] for i in range(20): k = np.random.randint(1, 200) enr.append(delayed(hypergeom.sf)(k=k, M=10000, n=20, N=N, loc=0)) enr_df[N] = enr (我相信应该分别在每个值上调用compute。)

但是,如果我将其转换为enr_df.applymap(compute)数据帧,则要计算的compute对象将分层放置在dask数据帧结构中:

delayed

我期望的计算输出不会继续。

1 个答案:

答案 0 :(得分:0)

您可以将一系列延迟的对象传递到dask.compute

results = dask.compute(*list_of_delayed_objects)

因此,您需要从Pandas数据框中获取列表。您可以使用普通的Python代码来完成此操作。

相关问题