根据过滤器创建新的列值

时间:2020-02-17 11:21:19

标签: python pandas

我将这些条件应用于数据框。如果所有这些条件都为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)]

1 个答案:

答案 0 :(得分: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)
相关问题