Как сравнить значения разных столбцов в pandas - PullRequest
0 голосов
/ 05 марта 2020

Я делаю QA, где мне нужно сравнить множество целевых страниц из двух разных доменов и проверить, есть ли определенные идентификаторы на обоих сайтах.

Я проверил и пока у меня есть фрейм данных вот так: (Извините, если я не использую правильный формат для отображения 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    
...

Быть Истинным, если идентификаторы одинаковы, и Ложным, если отсутствует какой-либо Идентификатор.

Спасибо !!!

1 Ответ

0 голосов
/ 05 марта 2020

Вот способ сделать это (гораздо меньше пандасти c, чем ответ Яту)

# 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'] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...