如何在 Dask Dataframe 上估算列值?

Amb*_*us9 5 dataframe pandas dask

我想估算 Dask Dataframe 的负值,使用 Pandas 我使用以下代码:

df.loc[(df.column_name < 0),'column_name'] = 0
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 4

我认为需要dask.dataframe.Series.clip_lower

ddf['B'] = ddf['B'].clip_lower(0)
Run Code Online (Sandbox Code Playgroud)

样本

import pandas as pd

df = pd.DataFrame({'F':list('abcdef'),
                   'B':[-4,5,4,-5,5,4],
                   'A':list('aaabbb')})

print (df)
   A  B  F
0  a -4  a
1  a  5  b
2  a  4  c
3  b -5  d
4  b  5  e
5  b  4  f

from dask import dataframe as dd 
ddf = dd.from_pandas(df, npartitions=3)
#print (ddf)

ddf['B'] = ddf['B'].clip_lower(0)
print (ddf.compute())
   A  B  F
0  a  0  a
1  a  5  b
2  a  4  c
3  b  0  d
4  b  5  e
5  b  4  f
Run Code Online (Sandbox Code Playgroud)

对于更通用的解决方案,请使用dask.dataframe.Series.mask`:

ddf['B'] = ddf['B'].mask(ddf['B'] > 0, 3)
print (ddf.compute())
   A  B  F
0  a -4  a
1  a  3  b
2  a  3  c
3  b -5  d
4  b  3  e
5  b  3  f
Run Code Online (Sandbox Code Playgroud)