こんにちはいくつかの助けを得ることを望んで、私は2つの列のデータフレームを持ってdf
います;
Source ID
1 2
2 3
1 2
1 2
1 3
3 1
私の意図は、ソースをグループ化し、グループ化されたソースに基づいてIDセルを合計で除算し、これを元のデータフレームに添付して、新しい列が次のようになるようにすることです。
Source ID ID_new
1 2 2/9
2 3 3/3
1 2 2/9
1 2 2/9
1 3 3/9
3 1 3/1
私はこれまでに到達しました。
df.groupby('Source ID')['ID'].sum()
合計を取得しますが、ID
次にどこに行くべきかわかりません。
これを試して:
In [79]: df.assign(ID_new=df.ID/df.groupby('Source').ID.transform('sum'))
Out[79]:
Source ID ID_new
0 1 2 0.222222
1 2 3 1.000000
2 1 2 0.222222
3 1 2 0.222222
4 1 3 0.333333
5 3 1 1.000000
新しい永続列として必要な場合は、コメントで提案されている@jezraelのように実行できます。
In [81]: df['ID_new'] = df.ID/df.groupby('Source').ID.transform('sum')
In [82]: df
Out[82]:
Source ID ID_new
0 1 2 0.222222
1 2 3 1.000000
2 1 2 0.222222
3 1 2 0.222222
4 1 3 0.333333
5 3 1 1.000000
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加