我需要创建一个基于 dask 数据框的某些条件的列。在 pandas 中,它相当简单:
ddf['TEST_VAR'] = ['THIS' if x == 200607 else
'NOT THIS' if x == 200608 else
'THAT' if x == 200609 else 'NONE'
for x in ddf['shop_week'] ]
在 dask 中,我必须做同样的事情,如下所示:
def f(x):
if x == 200607:
y= 'THIS'
elif x == 200608 :
y= 'THAT'
else :
y= 1
return y
ddf1 = ddf.assign(col1 = list(ddf.shop_week.apply(f).compute()))
ddf1.compute()
问题:
- 有没有更好/更直接的方法来实现它?
- 我无法修改第一个数据帧 ddf,我需要创建 ddf1 以确保更改是 dask 数据帧不可变对象?