【问题标题】:Filter Data frame not working过滤数据框不起作用
【发布时间】:2017-07-17 00:17:59
【问题描述】:

我正在根据几个字段过滤数据框,其中一个是年份。年份是浮点 64 数据类型。我正在过滤年份 >=2018 且参与度 = Y 且等级 = 高或中

df = df [(df ['yearLine End Date Year']>=2018) & (df ['Engaged']=='Y') & (df ['Tiering']=='High')|(df ['Tiering']=='Medium')];

除了年份,其他过滤器都在工作,但它仍然给我 2015、2016 和 2017 年。我做错了什么?

阿德里安

【问题讨论】:

  • 你的日期栏是什么类型的?

标签: python pandas


【解决方案1】:

您在过滤器中混淆了 and's 和 or's。

试试这个:

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 注意末尾的附加括号...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2017-10-04
    • 1970-01-01
    • 2014-08-09
    相关资源
    最近更新 更多