说,我有一些模糊的数据框。我想对它进行一些操作,而不是保存到csv并打印其len。
据我了解,以下代码会让dask两次计算df
,对吗?
df = dd.read_csv('path/to/file', dtype=some_dtypes)
#some operations...
df.to_csv("path/to/out/*")
print(len(df))
有可能避免两次计算?
但实际上行数几乎减少了6倍
答案 0 :(得分:5)
是的,您可以实现这一目标。 compute=
到to_csv
的可选关键字是写盘过程的惰性版本,df.size
类似于len()
,但也是懒惰的。< / p>
import dask
futs = df.to_csv("path/to/out/*", compute=False)
_, l = dask.compute(futs, df.size)
这将注意到写入和长度所需的常见工作,而不必两次读取数据。