データフレームから特定の列で場合分けをして、別の条件を満たす確率を知りたいです(説明がわかりづらくてすみません)
前提・実現したいこと
dfは以下のようになっています。
. A B
0 a 0
1 b 0
2 c 0
3 b 1
4 c 0
5 a 2
6 c 0
7 c 2
8 b 1
9 a 0
10 c 0
11 b 0
12 a 0
13 a 0
14 b 0
15 c 0
この場合に、B列が0の確率を、A列の種類ごとに出したいです。
具体的には、a=80%、b=60%、c=80%という風に出したいのですがやり方がわかりません。
a,b,cという種類は実際には数百種類あるので条件分岐に手打ちはしたくないです。
知見のある方、よろしければご回答お願いいたします。
試したこと
all_A = df["A"].value_counts().to_dict()
for i in all_A:
i = df[(df["A"]== i) & (df["B"]== 0)].count()
print(i)
このようにすればそれぞれのAの種類について全体の数(all_A)とBが0の数をそれぞれ出せるのではないかと思ったのですが、このやり方だとそれぞれのAについて割り算の式を書く必要があり、Aの種類が増えた際にソースコードを書き直さないといけなくなってしまうと思いました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。