计算Dask数据框架中特定值的所有出现次数。

问题描述 投票:0回答:1

我有一个dask数据框,有数千列和数千行,如下所示。

pprint(daskdf.head())
   grid     lat      lon  ...  2014-12-29  2014-12-30  2014-12-31
0     0  48.125 -124.625  ...         0.0         0.0  -17.034216
1     0  48.625 -124.625  ...         0.0         0.0  -19.904214
4     0  42.375 -124.375  ...         0.0         0.0   -8.380443
5     0  42.625 -124.375  ...         0.0         0.0   -8.796803
6     0  42.875 -124.375  ...         0.0         0.0   -7.683688

我想统计整个数据框中出现的所有值。在pandas中,可以这样做。

pddf[pddf==500].count().sum()

我知道你不能用dask翻译所有的pandas functionssyntax 但我如何用dask数据框架来做这个?我试着做了:

daskdf[daskdf==500].count().sum().compute()

但这产生了一个 "未实现 "的错误。

python data-science dask
1个回答
1
投票

在很多情况下,如果有一个行式pandas方法还没有在dask中明确实现,你可以使用 map_partitions. 在这种情况下,这可能看起来像。

ppdf.map_partitions(lambda df: df[df==500].count()).sum().compute()

你可以试验一下是否也做一个 .sum() λ内的帮助(会产生较小的中间人),以及 meta= 争论 map_partition 应该是这样的。

© www.soinside.com 2019 - 2024. All rights reserved.