在 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)
但是,我在dask中并没有以类似的方式找到任何函数。使用
.mask()
或 .where()
不适合我。
我想在 dask 中找到一些类似于
np.where()
的函数,我可以在 DataFrame
中标记它们。
这可能会简化您的代码。它没有使用
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