【问题标题】:Pandas loc multiple conditions [duplicate]Pandas loc多个条件[重复]
【发布时间】:2019-11-15 08:49:49
【问题描述】:

我有一个数据框,我想删除 A 列等于蓝色且 B 列等于绿色的所有行。

我虽然下面应该可以工作,但事实并非如此。

谁能看到问题

df=df.loc[~(df['A']=='blue' & df['B']=='green')]

【问题讨论】:

  • and代替&?
  • df.loc[~((df['A']=='blue') & (df['B']=='green'))] , () 是问题
  • @cripcate 为什么and ..??

标签: pandas pandas-loc


【解决方案1】:

你应该把这两个命题分开:

df1=df.loc[~(df['A']=='blue') & ~(df['B']=='green')]

【讨论】:

    【解决方案2】:

    使用eq 代替==

    df.loc[~(df['A'].eq('blue') & df['B'].eq('green'))]
    

    【讨论】:

    【解决方案3】:

    query

    注意!=orDe Morgan's Law 的结果

    df.query('A != "blue" or B != "green"')
    

    【讨论】:

      猜你喜欢
      • 2023-01-26
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2020-05-24
      • 1970-01-01
      • 2014-10-18
      • 2020-10-03
      相关资源
      最近更新 更多