我将尝试重述我的问题:
如何将dask.dataframe与类似zip的功能结合在一起?
假设我们有一个名为“ accounts.0.csv”的文件,其中包含以下数据
id,names,amount
352,Dan,4837
387,Tim,208
42,Jerry,21
129,Patricia,284
我写了这段代码
import dask.dataframe as dd
import itertools
from dask.threaded import get
df = dd.read_csv('accounts.0.csv')
dsk = {'a': (dd.read_csv,('accounts.0.csv')),
'b': (itertools.repeat,(True)),
'res': (zip, 'a'[id],'b')
}
get(dsk, 'res')
此代码应生成如下内容:
352, True
387, True
42 , True
129, True
我怎样才能做到这一点 ?
Zip适用于Python迭代器,不适用于Pandas或Dask DataFrames。
要实现上面的示例,您可以使用assign
方法
In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'x': [1, 2, 3]})
In [3]: df
Out[3]:
x
0 1
1 2
2 3
In [4]: df.assign(y=True)
Out[4]:
x y
0 1 True
1 2 True
2 3 True
In [5]: import dask.dataframe as dd
In [6]: ddf = dd.from_pandas(df, npartitions=1)
In [7]: ddf.assign(y=True).compute()
Out[7]:
x y
0 1 True
1 2 True
2 3 True
像字典样式的图形dsk = {...}
不应与dask.dataframe对象混合。dask.dataframe对象在内部使用图形。不应将它们放在其中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句