如何在dask数据框中进行多条件标记?

问题描述 投票:0回答:1

在 pandas 中,我可以在

np.where()
使用的不同列上标记具有多个条件的新列,例如:

import pandas as pd

df = pd.DataFrame({'Name':['A','B','C'],
                    'Sex':['Male','Female','Male'],
                    'Height':[175,160,195]})

df['Tag'] = ""
df['Tag'] = np.where((df['Sex'] == "Male")&(df['Height'] >180.),"CT",df['Tag'] )
df['Tag'] = np.where((df['Sex'] == "Female")&(df['Height'] <=180.),"GT",df['Tag'] )
print(df)

result

但是,我在dask中并没有以类似的方式找到任何函数。使用

.mask()
.where()
不适合我。

我想在 dask 中找到一些类似于

np.where()
的函数,我可以在
DataFrame
中标记它们。

python pandas numpy dask
1个回答
0
投票

这可能会简化您的代码。它没有使用

dask
,但同样有效。

import pandas as pd

df = pd.DataFrame({'Name':['A','B','C'],
                    'Sex':['Male','Female','Male'],
                    'Height':[175,160,195]})

conds = [(df['Sex'] == "Male")&(df['Height'] >180.), (df['Sex'] == "Female")&(df['Height'] <=180.)]
val = ["CT", "GT"]

df['Tag'] = np.select(conds, val, default = np.NaN)
print(df)

Name     Sex  Height  Tag
0    A    Male     175  nan
1    B  Female     160   GT
2    C    Male     195   CT
© www.soinside.com 2019 - 2024. All rights reserved.