Python 如何通过列值唯一标识csv中的一行,然后在以后的另一列中检查一个";通过;关键字并打印它
我有一个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”关键字 如果两个条件都符合,我想打印注释,否则打印失败的语句 我试过用这个脚本,但没
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
函数那样进行优化