我正在进行质量检查,我需要比较两个不同域中的许多着陆页,并检查两个站点中是否都包含某些ID。
我已经完成了抓取工作,到目前为止,我有一个像这样的数据框: (很抱歉,如果我没有使用正确的格式来显示df,这是我第一次在这里提出问题,我不知道如何正确执行此操作)
STAGE-1001-1001 PROD-1001-1001 STAGE-1001-1002 PRODs-1001-1002
0 ab1311 ab1311 qa1311 qa1311
1 ac1312 ac1312 qq1311 qq1311
2 ad1311 ad1311 qc1313 qc1313
3 acb1313 acb1313 qd1312 qd1312
4 a1311 a1311 qe131e qe131e
基本上,我需要对每种产品的STAGE列与PROD列进行比较,在这种情况下,是STAGE-1001-1001对PROD-1001-1001和PROD-1001-1002对PROD-1001-1002
有什么想法吗?
我的想法是(完成后)具有类似于以下内容的df:
TRUE FALSE
1001-1001 True
1001-1002 True
1001-1003 False
1001-1004 True
...
如果ID相同,则为True;如果缺少ID,则为False。
谢谢!
答案 0 :(得分:0)
这是一种解决方法(
# Get product IDs if you don't have them yet
products = {col.split('-', 1)[-1] for col in df.columns}
products_validity = dict()
for prod_id in products:
is_valid = (df['PROD-'+prod_id]==df['STAGE-'+prod_id]).all()
products_validity[prod_id] = [is_valid]
validity_df = pd.DataFrame.from_dict(
products_validity,
orient='index',
columns=['is_valid']
)
# Create inversed column if needed
validity_df['is_not_valid'] = ~validity_df['is_valid']