【问题标题】:python pandas selecting with loc through boolean expressionpython pandas通过布尔表达式选择loc
【发布时间】:2018-07-23 19:18:04
【问题描述】:

是否可以用多行做布尔表达式?

目标是“GROUPER”列,它会找到指定的行值,然后对于这2行,它将“Risk”列中的行的值更改为“difficult”。也许我不应该使用“和”?谢谢!

GROUPER     RISK
80906373    N/A
85920225    N/A
85920226    N/A
85920250    Difficult
80958231    Difficult

df.loc[df['GROUPER'] == 80906010 and 80906220,['Risk']] = 
'Difficult'

【问题讨论】:

  • 我不明白那个条件怎么可能是True,即使语法是正确的? (这将是真的,但不是有充分的理由,所以我正在尝试找出您要应用的逻辑)
  • 删除的评论建议isin(),我认为这可能是您想要的,但我不能确定。您想测试df['GROUPER'] 是否等于 80906010 OR df['GROUPER'] 是否等于 80906220?
  • 你能展示一个示例数据框和所需的输出吗?
  • 我想例如,其余的风险变得困难。为此,我想选择特定的行,以及其中的多个。

标签: python pandas boolean expression


【解决方案1】:

使用loc 方法过滤并分配给想要的列,如下所示:

df.loc[df['GROUPER'].isin([80906010, 80906220]),'Risk'] = 'Difficult'

【讨论】:

    猜你喜欢
    • 2015-04-29
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2012-03-25
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多