【问题标题】:If x and y are true do this, else do this. Pandas如果 x 和 y 为真,则执行此操作,否则执行此操作。熊猫
【发布时间】:2021-02-10 11:46:47
【问题描述】:
enter code here if fluadf['CLINICAL_STATUS'] = 'DRAFT' and fluadf['CLINICAL_DATE_RECEIVED'] = " / /

" fluadf['CLINICAL_STATUS'].str.replace( “草稿”、“在途”) 别的 fluadf['CLINICAL_STATUS'].str.replace( '草稿','处理中')

不确定这段代码是否有意义。我正在尝试测试两个值,如果它们都是真的(临床状态是草稿,并且没有收到临床日期的日期),那么将草稿更改为运输中。否则,将草稿更改为处理中。我非常感谢任何帮助指导我完成此任务的帮助。

【问题讨论】:

标签: python pandas if-statement conditional-statements


【解决方案1】:

我相信您需要 numpy.where 并同时使用 & 进行按位屏蔽 and 并添加 () 因为运算符的优先级:

mask = (fluadf['CLINICAL_STATUS'] == 'DRAFT') & (fluadf['CLINICAL_DATE_RECEIVED'] == " / /")

fluadf['CLINICAL_STATUS'] = np.where(mask, 'IN TRANSIT','IN PROCESS')

【讨论】:

  • 文件“”,第 29 行掩码 = (fluadf['CLINICAL_STATUS'] = 'DRAFT') & (fluadf['CLINICAL_DATE_RECEIVED'] = "//" ) ^ SyntaxError: 无效语法
  • 我试过了,得到了这个错误。我现在也可以尝试添加最小、完整和可验证的示例。感谢您的指导!
  • 看起来临床状态和草稿之间的 = 必须是 ==,然后才有效!非常感谢耶斯瑞尔
  • @LGumbleton - 你是对的,这是我的错字。谢谢你。
猜你喜欢
  • 2021-06-19
  • 1970-01-01
  • 2013-01-19
  • 2021-10-27
  • 2014-02-17
  • 2023-03-09
  • 1970-01-01
  • 2016-05-17
  • 2023-02-03
相关资源
最近更新 更多