Python 如何通过列值唯一标识csv中的一行,然后在以后的另一列中检查一个";通过;关键字并打印它

Python 如何通过列值唯一标识csv中的一行,然后在以后的另一列中检查一个";通过;关键字并打印它,python,pandas,python-2.7,csv,parsing,Python,Pandas,Python 2.7,Csv,Parsing,我有一个CSV文件 APIName_UniqueId,TC_Status,Comment 123456,PASSED,API "123456_Get Download Credential_1" is PASSED 123457,PASSED,API "123457_Get Upload Credential_1" is PASSED 我想检查APIName_UniqueId并检查注释是否有“Passed”关键字 如果两个条件都符合,我想打印注释,否则打印失败的语句 我试过用这个脚本,但没

我有一个CSV文件

APIName_UniqueId,TC_Status,Comment
123456,PASSED,API "123456_Get Download Credential_1" is PASSED 
123457,PASSED,API "123457_Get Upload Credential_1" is PASSED 
我想检查APIName_UniqueId并检查注释是否有“Passed”关键字

如果两个条件都符合,我想打印注释,否则打印失败的语句

我试过用这个脚本,但没用

import pandas as pd

df = pd.read_csv('C:\Work\Test\Python_Scripts\Final_Result.csv')

for value_i in df.APIName_UniqueId:

if df[(df['APIName_UniqueId'] == 123456) &(df['Comment'].str.contains('PASSED'))]:
             print(df['Comment'])

    else:
        print('Test Case Failed')

有人能帮我吗?

这应该会有帮助。我通常用python3编写,所以语法可能会有点偏离

将熊猫作为pd导入
df=pd.read\u csv('C:\Work\Test\Python\u Scripts\Final\u Result.csv')
对于索引,df.iterrows()中的行:
如果(行['APIName\u UniqueId']==123456)和行['Comment'].str.contains('PASSED'))]:
打印(第[‘注释’]行)
其他:
打印('测试用例失败')

您可以使用
np.where
传递3个参数:(1)条件,(2)如果为真,则结果,(3)如果为假,则结果

(np.where((df['APIName_UniqueId'] == 123456) & 
          (df['Comment'].str.contains('PASSED')), df['Comment'], 'Test Case Failed')
)
output:
array(['API "123456_Get Download Credential_1" is PASSED ',
       'Test Case Failed'], dtype=object)
只要记住,建议尽可能避免使用for循环结构,它们不会像本机
pandas
numpy
函数那样进行优化