【问题标题】:Exclude rows from dataframe except if another column condition met从数据框中排除行,除非满足另一个列条件
【发布时间】:2019-05-14 07:05:50
【问题描述】:

如果行符合列表 (eligibility_criteria) 条件,我想从我的数据框中排除行,除非关税列以“***”开头。这就是我所拥有的:

import pandas as pd

df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False)] #This works

我如何添加这个“除了什么时候”限定词...

#df['tariff'].str.startswith("***")

【问题讨论】:

    标签: python pandas logic


    【解决方案1】:

    如果资费以"***" 开头,则设E 为资格标准,S 为真。您想排除与E & ~S 相同的E unless S 行。反之,你想保留没有这个属性的行:~(E & ~S),和~E | S一样:

    df = df[~df['eligibility'].str.contains(eligibility_criteria, na=False) | 
             df['tariff'].str.startswith("***")]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2018-08-29
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多