2

誰かが pandas の (可能な) groupby を手伝ってくれませんか?

ここにdfがあります:

    easy_donor  v_fam   count
0   donor_1_NS  IGHV1   5202376
1   donor_1_NS  IGHV2   1955547
2   donor_1_NS  IGHV3   70426272
3   donor_1_NS  IGHV4   452367
4   donor_1_NS  IGHV5   4842145
5   donor_1_NS  IGHV6   490142
6   donor_1_NS  IGHV7   19708
24  donor_2_NS  IGHV1   31258603
25  donor_2_NS  IGHV2   5295899
26  donor_2_NS  IGHV3   47286417
27  donor_2_NS  IGHV4   44553802

次に、ドナーごとにグループ化されたカウントの合計の頻度として各カウントが必要です。

お気に入り:

df.groupby('easy_donor').sum()['count']
easy_donor
donor_1_NS     83394639
donor_2_NS    129191591
donor_3_HS    220549762
donor_3_NS    104821016
donor_4_HS    200444923
donor_4_NS    121287306

次に、元のデータ フレームの各カウントが、easy_donor 列と一致する場合、groupby の合計で除算されます。元のデータフレームに参加する必要がありますか?

4

2 に答える 2

5

試す:

df.groupby('easy_donor')["count"].apply(lambda x: x / x.sum())
于 2016-06-03T01:44:18.010 に答える