以下のようなデータフレームがあります。各行のすべての値に 1 を追加したいと思います。このフォーラムと Python は初めてなので、これを行う方法を概念化できません。各値に 1 を追加する必要があります。ベイズ確率を使用するつもりで、それらを乗算すると事後確率は 0 になります。PS。私も確率については初心者ですが、他の人が同じ方法を適用しています。ご協力をよろしくお願いします。私はこれを実行するのに pandas を使用しています。
Disease Gene1 Gene2 Gene3 Gene4
D1 0 0 25 0
D2 0 0 0 0
D3 0 17 0 16
D4 24 0 0 0
D5 0 0 0 0
D6 0 32 0 11
D7 0 0 0 0
D8 4 0 0 0
ベストアンサー1
これがデータフレームの場合:
df = pd.DataFrame({
"Disease":[f"D{i}" for i in range(1,9)],
"Gene1":[0,0,0,24,0,0,0,4],
"Gene2":[0,0,17,0,0,32,0,0],
"Gene3":[25,0,0,0,0,0,0,0],
"Gene4":[0,0,16,0,0,11,0,0]})
Disease Gene1 Gene2 Gene3 Gene4
0 D1 0 0 25 0
1 D2 0 0 0 0
2 D3 0 17 0 16
3 D4 24 0 0 0
4 D5 0 0 0 0
5 D6 0 32 0 11
6 D7 0 0 0 0
7 D8 4 0 0 0
これを行う最も簡単な方法は
df += 1
ただし、文字列の列(病気の列)があるため、
これは機能しません。
しかし、次のように、Disease 列をインデックスとして設定すると便利です。
df.set_index('Disease', inplace=True)
データフレームは次のようになります。
Gene1 Gene2 Gene3 Gene4
Disease
D1 0 0 25 0
D2 0 0 0 0
D3 0 17 0 16
D4 24 0 0 0
D5 0 0 0 0
D6 0 32 0 11
D7 0 0 0 0
D8 4 0 0 0
df += 1
今実行すると、次のようになります。
Gene1 Gene2 Gene3 Gene4
Disease
D1 1 1 26 1
D2 1 1 1 1
D3 1 18 1 17
D4 25 1 1 1
D5 1 1 1 1
D6 1 33 1 12
D7 1 1 1 1
D8 5 1 1 1
プラス演算はインデックスではなくデータ列にのみ作用するためです。
次のように列ベースでこれを行うこともできます。
df["Gene1"] = df["Gene1"] + 1