python - 我如何通过列值唯一标识 csv 中的一行,然后在另一列中检查“通过”关键字并打印它
问题描述
我有一个 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 并检查评论。
如果两个条件都符合我想打印评论,否则打印失败的声明。
我试过这个脚本,但它不起作用,
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')
有人可以帮我吗 ?
解决方案
您可以使用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
函数那样优化
推荐阅读
- python - 如何将除最小值和最大值之外的所有元组值归零
- c - 二进制 & 的错误操作数无效(有 'int **' 和 'int *')
- python-3.x - 有没有办法在 Tkinter 中获得自定义形状的按钮?
- python - Django TransactionManagementError:select_for_update 不能在事务之外使用
- regex - Regexp_extract 在 Hive 中返回数据 2 次(重复)
- python - 混淆矩阵显示错误信息?
- azure-sql-database - 是否可以在 Azure SQL DB 中按用户实现行级安全性并在 ASP.Net 3.1 Web App 上访问用户特定的行集
- android - 为什么 waze deeplink 在 asynctask 中不起作用?
- plsql - 使用从数据库中选择将参数传递给 PL/SQL 过程
- webforms - c#, IIS 10, Web Forms, Forms Authentication, Bootstrap 4, Web API, Trying to Add Signalr - 在 signalr/hubs 上得到 404?