如何在panda中使用或命令对我的数据进行分类



我认为这可能是个小问题,但我对编码还是个新手。我使用以下代码对我的数据进行了分类。但我需要命令,例如,如果不是我的所有条件都满足类别术语,例如,只考虑7个条件中的4个,并给我提到的类别。我该怎么做?我真的很感激你能提供的任何帮助。

c1=df['Stroage Condition'].eq('refrigerate')
c2=df['Profit Per Unit'].between(100,150)
c3=df['Inventory Qty']<20
df['Restock Action']=np.where(c1&c2&c3,'Hold Current stock level','On Sale')
print(df)

假设这是您的数据帧:

Stroage Condition  refrigerate  Profit Per Unit  Inventory Qty
0                  0            1                0             20
1                  1            1              102              1
2                  2            2                5              2
3                  3            0              100              8

条件就是你定义的条件:

c1=df['Stroage Condition'].eq(df['refrigerate'])
c2=df['Profit Per Unit'].between(100,150)
c3=df['Inventory Qty']<20

然后,您可以定义一个lambda函数,并将其传递给np.where()函数。在那里,您可以定义有多少条件必须为True。在本例中,我将该值设置为至少两个。

def my_select(x,y,z):
return np.array([x,y,z]).sum(axis=0) >= 2

最后你又运行了一行:

df['Restock Action']=np.where(my_select(c1,c2,c3), 'Hold Current stock level', 'On Sale')
print(df)

这将打印到控制台:

Stroage Condition  refrigerate  Profit Per Unit  Inventory Qty            Restock Action
0                  0            1                0             20                   On Sale
1                  1            1              102              1  Hold Current stock level
2                  2            2                5              2  Hold Current stock level
3                  3            0              100              8  Hold Current stock level

如果您有更多的条件或规则,则可以使用与规则一样多的变量来扩展lambda函数。

最新更新