根据值,显示通过或失败

2024-05-16 08:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

toc_ccv.insert(11, 'QC Result', '')
toc_ccv['Recovery (%)'] = toc_ccv['TOC (ppmC)']/ toc_ccv['Prepared Value (ppmC)'] * 100
toc_ccv['Abs Difference'] = abs(toc_ccv['TOC (ppmC)']-toc_ccv['Prepared Value (ppmC)'])

我想检查一下上述计算的值。如果恢复%的值在 90-110%,我想表明它通过了,如果没有,就失败了,并将声明(通过或失败)放在QC结果列下

例如,由于回收率%在可接受范围内,因此两个值的QC结果列下都应显示“通过”一词

enter image description here


Tags: 声明valueabsresultinsertqcccvtoc
1条回答
网友
1楼 · 发布于 2024-05-16 08:25:30

只需使用两个条件的&使其成为True/False,然后将True/False映射为Pass/Fail

df['QC Result'] = ((df['Recovery (%)'] >= 90) & (df['Recovery (%)'] <= 110)).replace({True: 'Pass', False: 'Fail'})

如果我们把它分解一下,我们可以看到它是如何工作的:

import pandas as pd

data = {'%':[94.33, 88.11, 111.93, 110.00, 90.00]}

df = pd.DataFrame(data)
#if print(df) get A below
df['result'] = ((df['%'] >= 90) & (df['%'] <= 110)).replace({True: 'Pass', False: 'Fail'})
#if print(df) get B below
df = pd.DataFrame(data)
#if print(df) get A below
df['result'] = (df['%'] >= 90) & (df['%'] <= 110)
#if print(df) get C below
pf_dict = {True: 'Pass', False: 'Fail'}
df['result']=df['result'].replace(pf_dict)
#if print(df) get B below

#PRINT A
        %
0   94.33
1   88.11
2  111.93
3  110.00
4   90.00
#PRINT B
        % result
0   94.33   Pass
1   88.11   Fail
2  111.93   Fail
3  110.00   Pass
4   90.00   Pass
#PRINT C    
        %  result
0   94.33    True
1   88.11   False
2  111.93   False
3  110.00    True
4   90.00    True

相关问题 更多 >