我有一个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()
但这产生了一个 "未实现 "的错误。
在很多情况下,如果有一个行式pandas方法还没有在dask中明确实现,你可以使用 map_partitions
. 在这种情况下,这可能看起来像。
ppdf.map_partitions(lambda df: df[df==500].count()).sum().compute()
你可以试验一下是否也做一个 .sum()
λ内的帮助(会产生较小的中间人),以及 meta=
争论 map_partition
应该是这样的。