我根据几个字段过滤数据框,其中一个是年份。年份是float 64数据类型。我正在过滤年份> = 2018并且参与= Y和Tier =高或中等
df = df [(df ['yearLine End Date Year']>=2018) & (df ['Engaged']=='Y') & (df ['Tiering']=='High')|(df ['Tiering']=='Medium')];
除了一年之外,其他过滤器正在工作,它仍然让我回到2015年,2016年和2017年。我做错了什么?
阿德里安
答案 0 :(得分:2)
你的过滤器已经混淆了。
试试这个:
df[(df['yearLine End Date Year']>=2018) & (df['Engaged']=='Y') & df['Tiering'].isin(['High','Medium'])]
或
df[(df['yearLine End Date Year']>=2018) & (df['Engaged']=='Y') & ((df['Tiering']=='High')|(df['Tiering']=='Medium'))]
PS最后注意额外的括号......