最初は、これが既にStackOverflowのどこかにある場合は謝罪し、1時間実験した後1時間検索しました。私はエレガントな(そしておそらく初級の)解決策がなければならないと確信しています。データフレーム内の他の列に基づくいくつかの条件を持つパンダに列を追加
は、私は、次のデータフレームがあります。
Admit Gender Dept Freq
0 Admitted Male A 512
1 Rejected Male A 313
2 Admitted Female A 89
3 Rejected Female A 19
4 Admitted Male B 353
5 Rejected Male B 207
6 Admitted Female B 17
7 Rejected Female B 8
8 Admitted Male C 120
9 Rejected Male C 205
10 Admitted Female C 202
11 Rejected Female C 391
12 Admitted Male D 138
13 Rejected Male D 279
14 Admitted Female D 131
15 Rejected Female D 244
16 Admitted Male E 53
17 Rejected Male E 138
18 Admitted Female E 94
19 Rejected Female E 299
20 Admitted Male F 22
21 Rejected Male F 351
22 Admitted Female F 24
23 Rejected Female F 317
をそして、私は成功の割合を与える列「割合」を追加したい/各部門に性別によって応募者を失敗しました。
だから:
df.loc[0, 'Proportion'] = 512/(512+313) = 0.6206
df.loc[1, 'Proportion'] = 313/(512+313) = 0.3794
...
のように。
Iがのバリエーションを使用して、「トータル」欄を追加することによって、オフを開始しようとした:
data.groupby(['Dept', 'Gender'])[['Freq']].sum()
しかし、私は、元の各行の値によって、このデータフレームの値をルックアップすることができないようデータフレーム。
ラムダ関数を使ってみましたが、 '関数は反復不可能です'というエラーが出ます。
小さなデータセットであるため、行ごとにループすることができますが、将来このオプションを選択する必要はありません。
初心者や志望のデータ科学者を助けてください。
はそうありがとうこれはまさに私が望んでいたものです。 –