基于Python中的多个条件进行过滤

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

我有一个df,其中包含股票,指数成员,市值,市值排名,营业额和营业额等级列表。

我需要创建另一个名为“删除”的列,它将根据一些条件删除股票。

使用&和|的条件列表

  1. 当前的索引成员资格必须等于DAX和
  2. 市值排名必须大于35或
  3. 营业额必须大于35

当索引成员资格= dax且市值排名> 35时,以下代码有效,但当索引成员资格= dax且营业额> 35时不起作用,而不是仅查看营业额是否大于35而不是指数成员资格= dax 。

使用下面的代码我的结果是在新创建的'删除'列中显示一个库存作为删除,因为它的营业额等级为79,但索引成员资格是MDAX而不是DAX。第一个条件必须满足,而不是在这种情况下。

请有人帮帮我


df['Deletes'] = np.where((df['Index Membership'] == 'DAX') & (df['MKT Rank'] > 35) | (df['Turnover Rank'] > 35),'delete','')
python pandas numpy filter
1个回答
3
投票

我想这里可以添加另一个()像:

df['Deletes'] = np.where((df['Index Membership'] == 'DAX') & 
                         ((df['MKT Rank'] > 35) | (df['Turnover Rank'] > 35)),'delete','')

因为operator precedence

© www.soinside.com 2019 - 2024. All rights reserved.