Перемещение значений строк между столбцами на основе других значений столбцов в Pandas DataFrame

У меня есть набор данных панд со списком названий организмов и их чувствительностью к антибиотикам. Я хочу объединить все организмы в один столбец в приведенной ниже таблице данных на основе следующих правил.

Если ORG1 == A, ничего не делать;

Если ORG1! = A и ORG2 == A, переместите значения ORG2 в столбец ORG1

Если ORG1! = A и ORG3 == A, переместите значения ORG3 в столбец ORG1

Если выполняется условие 2, а также перемещать значение ORG2 в столбец ORG1, также перемещайте значения столбца в AS20 * в AS10 *.

Точно так же, если выполняется условие 3, а также перемещение значения ORG3 в столбец ORG1, также перемещайте значения столбца в AS30 * в AS10 *.

Я сам попробовал это, написав функцию, основанную на приведенных выше правилах, и имел ограниченный успех, основанный на следующем:

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

Я заблудился, когда попытался последовательно отобразить AS201 -> AS101, AS202 -> AS102, AS203 -> AS103 и т. Д. В зависимости от состояния.

Другая проблема, с которой я столкнулся, заключается в том, что имена организмов - это не отдельные буквы, а красивые. А в примере эквивалентноre.match('aureus') в моем наборе данных.

Кроме того, есть 20 столбцов AS для каждого столбца ORG и более 150 000 записей, поэтому я надеюсь сделать его обобщенным для любого числа результатов чувствительности к антибиотикам.

Я немного борюсь с этим, так что пара толчков в правильном направлении действительно поможет.

Заранее спасибо.

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

Ответы на вопрос(1)

Ваш ответ на вопрос