根据过滤器创建新的列值



我将这些条件应用于我的数据帧。如果所有这些条件都为TRUE,我想创建一个值为1的整数列,但我不知道如何创建最后一步。

我的最终目标是在SQL 中使用案例风格的东西

df.loc[df['AREA'].isin([8,22,19,27,22]) | (df['AREA']==4) & (~df['REGION'].isin([53,65,86])) | (df['AREA']==1) & (df['company']==1)]

我建议单独创建每个掩码并传递给numpy.select:

m1 = df['AREA'].isin([8,22,19,27,22])
m2 = (df['AREA']==4) & (~df['REGION'].isin([53,65,86])) 
m3 = (df['AREA']==1) & (df['company']==1)
df['new'] = np.select([m1, m2, m3], [1,2,3], default=0)

最新更新