首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的条件出了什么问题?使用np.where语句标记我的pandas数据帧

我的条件出了什么问题?使用np.where语句标记我的pandas数据帧
EN

Stack Overflow用户
提问于 2019-12-12 18:20:42
回答 1查看 44关注 0票数 0

我正在使用的功能是在不适用的情况下不断给出红色过滤条件。

下面是我使用的函数:

代码语言:javascript
复制
tolerance = 5 
def rag(data):

    red_filter   =  ((data.SHIPMENT_MOT_x == 'VESSEL') & \
                     ((data.latedeliverydate + pd.to_timedelta(tolerance,unit='D')) < data.m6p)) | \
                     ((data.SHIPMENT_MOT_x == 'AIR') & (data.latedeliverydate < data.m6p))

    green_filter =  (data.SHIPMENT_MOT_x == 'VESSEL') & \
                    (data.M6_proposed == data.m6p) & \
                    ((data.latedeliverydate + pd.to_timedelta(tolerance,unit='D')) >= data.m6p) | \
                     ((data.SHIPMENT_MOT_x == 'AIR') & (data.latedeliverydate >= data.m6p))

    amber_filter =  (data.SHIPMENT_MOT_x == 'VESSEL') & \
                    (data.M6_proposed != data.m6p) & \
                    ((data.latedeliverydate + pd.to_timedelta(tolerance,unit='D')) >= data.m6p) | \
                    ((data.SHIPMENT_MOT_x == 'AIR') & (data.latedeliverydate >= data.m6p)) 



data['RAG'] = np.where(green_filter, 'G', np.where(amber_filter, 'A', np.where(red_filter, 'R', '')))
EN

回答 1

Stack Overflow用户

发布于 2019-12-12 19:59:28

如果你们感兴趣,这里就是解决方案。np.where很有用,但在有多个条件时不推荐使用

代码语言:javascript
复制
def pmm_rag(data):

    if  ((data.MOT== 'VESSEL') & ((data.m0p + pd.to_timedelta(tolerance,unit='D')) < data.m6p)) | ((data.SHIPMENT_MOT_x == 'AIR') & (data.m0p < data.m6p)):
        return 'R'
    elif (data.MOT== 'VESSEL') & (data.M6_proposed == data.m6p) & ((data.m0p + pd.to_timedelta(tolerance,unit='D')) >= data.m6p) | ((data.MOT== 'AIR') & (data.m0p >= data.m6p)):
        return 'G'
    elif (data.MOT== 'VESSEL') & (data.M6_proposed != data.m6p) & ((data.m0p + pd.to_timedelta(tolerance,unit='D')) >= data.m6p) | ((data.MOT== 'AIR') & (data.m0p >= data.m6p)):
        return 'A'
    else:
        return ''
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59302365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档