生物名とその抗生物質感受性のリストを含むパンダデータフレームがあります。以下のルールに基づいて、以下の DataFrame ですべての生物を 1 つの列に統合したいと考えています。
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と条件をもとに順番にマッピングしようとしたら迷いました。
私が抱えているもう 1 つの問題は、生物の名前が 1 文字ではなく、かわいい文字でもないことです。例の A は、私のデータセットと同等re.match('aureus')
です。
また、ORG 列ごとに 20 の AS 列があり、150,000 を超えるレコードがあるため、任意の数の抗生物質感受性の結果に対して一般化できるようにしたいと考えています。
私はそれに少し苦労しているので、正しい方向に数回押すと本当に助けになります.
前もって感謝します。
インデックス ORG1 ORG2 ORG3 AB1 AS101 AS201 AS301 AB2 AS102 AS202 AS302 1 A NaN NaN pen S NaN NaN dfluc S NaN NaN 2 ABC ペン RSS dfluc SRS 3 BABペンSSR dfluc SSR 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 CAA ペン SRR dfluc RSR 7 B NaN A pen R NaN S dfluc S NaN S 8 ABA ペン RRR dfluc RRR 9 A NaN NaN pen R NaN NaN dfluc S NaN NaN