[Python] Comparar todas as rows e columns de dois Df, atualizar e somar as diferenças ao final...

Discussão em 'Python' iniciado por Stack, Junho 2, 2025.

  1. Stack

    Stack Membro Participativo

    Possuo dois csv separados por tab. Ambos possuem o mesmo número de rows e columns. A primeira coluna POS possui os mesmos unique values nos dois df. As diferenças (ou não), ocorrem nos valores (strings) das colunas col1:col4.

    Pensei em realizar uma query, algo como: query = subset_pl(subset_pl.isin(subset_ad)) e a partir disso continuar com o código, mas eu fiquei preso aí...

    import pandas as pd

    subset_ad = pd.read_csv('subset_ad.csv', sep='\t')
    subset_ad.set_index('POS')
    subset_ad

    POS col1 col2 col3 col4
    28355991 A A A A
    28356037 A A A A
    28356130 A A A A
    28356246 A A A A



    subset_pl = pd.read_csv('subset_pl.csv', sep='\t')
    subset_pl.set_index('POS')
    subset_pl

    POS col1 col2 col3 col4
    28355991 A B A A
    28356037 B B B A
    28356130 A B A A
    28356246 A A B A


    O que eu pretendo conseguir é: comparar subset_ad com subset_pl, atualizar subset_ad com o valor de subset_pl mantendo o valor de subset_ad separados por , (A,B por exemplo), caso haja values diferentes e contar essas diferenças tanto em rows como em columns adicionando uma row e uma column a mais (cont_col, cont_row) para exibir a contagem das células que sofreram alterações...

    O output seria algo como:

    subset_ad

    POS col1 col2 col3 col4 cont_row
    28355991 A A,B A A 1
    28356037 A,B A,B A,B A 3
    28356130 A A,B A A 1
    28356246 A A A,B A 1
    cont_col 1 3 2 0


    Qualquer direcionamento será bem vindo!

    Continue reading...

Compartilhe esta Página