Movendo valores de linha entre colunas com base em outros valores de coluna em um DataFrame do Pandas

Eu tenho um quadro de dados de pandas com uma lista de nomes de organismos e suas sensibilidades antibióticas. Desejo consolidar todos os organismos em uma coluna, no DataFrame abaixo, com base nas regras a seguir.

Se ORG1 == A, não faça nada;

Se ORG1! = A e ORG2 == A, mova os valores de ORG2 para a coluna ORG1

Se ORG1! = A e ORG3 == A, mova os valores ORG3 para a coluna ORG1

Se a condição 2 for atendida, além de mover o valor ORG2 para a coluna ORG1, mova também os valores da coluna em AS20 * para AS10 *.

Da mesma forma, se a condição 3 for atendida, além de mover o valor ORG3 para a coluna ORG1, mova também os valores da coluna em AS30 * para AS10 *.

Eu mesmo tentei escrever uma função com base nas regras acima e tive sucesso limitado com base no seguinte:

If ORG2 == A:
       return ORG1.map(ORG2)

Eu me perdi quando tentei mapear sequencialmente AS201 -> AS101, AS202 -> AS102, AS203 -> AS103 etc. com base na condição.

A outra questão que tenho é que os nomes dos organismos não são letras únicas, nem são bonitas. A no exemplo é equivalente are.match('aureus') no meu conjunto de dados.

Além disso, há 20 colunas AS para cada coluna ORG e mais de 150.000 registros, portanto, espero torná-la generalizável para qualquer número de resultados de sensibilidade a antibióticos.

Eu estou lutando um pouco com isso, então alguns shoves na direção certa realmente ajudariam.

Desde já, obrigado.

Index   ORG1    ORG2    ORG3    AB1    AS101    AS201   AS301     AB2   AS102   AS202 AS302
1          A     NaN     NaN    pen        S      NaN     NaN   dfluc       S     NaN   NaN
2          A       B       C    pen        R        S       S   dfluc       S       R     S
3          B       A       B    pen        S        S       R   dfluc       S       S     R
4          A     NaN     NaN    pen        R      NaN     NaN   dfluc       S     NaN   NaN
5          A     NaN     NaN    pen        R      NaN     NaN   dfluc       S     NaN   NaN
6          C       A       A    pen        S        R       R   dfluc       R       S     R
7          B     NaN       A    pen        R      NaN       S   dfluc       S     NaN     S
8          A       B       A    pen        R        R       R   dfluc       R       R     R
9          A     NaN     NaN    pen        R      NaN     NaN   dfluc       S     NaN   NaN

questionAnswers(1)

yourAnswerToTheQuestion