【问题标题】:How to groupby one column with 3 conditions in multiple columns如何在多列中对具有 3 个条件的一列进行分组
【发布时间】:2019-06-03 20:00:43
【问题描述】:

我有数据框,我需要在以下条件下应用

  1. 检查 colA 是否 > 0
  2. 如果是,则在 colB 中搜索字符串“recycled”并比较它是否存在于 colC 中
  3. 如果满足,则为真,否则为假

数据框:

     Temp       colA     colB             colC

     ob1        50       HDP              HDP
     ob1        50       HDP recycled     HDP
     ob1        50       HDP              HDP
     ob2        0        PE               PE
     ob2        0        PE               PE
     ob3        30       PE recycled      PE recycled
     ob3        30       PE               PE recycled

输出:

     Temp       colA     colB             colC           output
     ob1        50       HDP recycled     HDP            Anomaly
     ob2        0        PE               PE             Pass
     ob3        30       PE recycled      PE recycled    Pass

我试过的代码:

     f=pp.groupby('Temp')['colB'].apply(lambda x: 
     x.str.contains('Recycled').any()).map({True:'Pass',False:'anomaly'})

【问题讨论】:

    标签: python-3.x string dataframe pandas-groupby


    【解决方案1】:

    试试Rank函数

    data['Rank'] = data.groupby('Temp')['output'].rank(method='dense',ascending=True)
    data['Final'] = data.groupby('Temp')['Rank'].rank(method='first',ascending=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 2020-04-09
      相关资源
      最近更新 更多