第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

熊貓:將列值乘以組的總和

熊貓:將列值乘以組的總和

滄海一幻覺 2023-02-07 16:40:05
我有一個(gè)看起來像這樣的數(shù)據(jù)框:   a     b0  A  0.151  A  0.252  A  0.103  B  0.204  B  0.105  B  0.256  B  0.607  C  0.508  C  0.70我想添加一個(gè)“c”列,它將“b”的值乘以它在“a”列中所屬的組的總和。所以,第一行應(yīng)該是 0.15 * 0.5(A 組的總和)= 0.075。這將是“c”列的 excel 公式 =B1*SUMIF($A$1:$A$9,A1,$B$1:$B$9)結(jié)果數(shù)據(jù)框應(yīng)如下所示:    a   b       c0   A   0.15    0.0751   A   0.25    0.1252   A   0.10    0.053   B   0.20    0.234   B   0.10    0.1155   B   0.25    0.28756   B   0.60    0.697   C   0.50    0.68   C   0.70    0.84
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

嘗試 groupby + transform 然后相乘:


df['b'] * df.groupby('a')['b'].transform('sum')

#df['c'] = df['b'] * df.groupby('a')['b'].transform('sum')

0    0.0750

1    0.1250

2    0.0500

3    0.2300

4    0.1150

5    0.2875

6    0.6900

7    0.6000

8    0.8400

Name: b, dtype: float64


查看完整回答
反對(duì) 回復(fù) 2023-02-07
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

嘗試新的reindex


df['c']=df.b*df.set_index('a').b.sum(level=0).reindex(df.a).values

df

   a     b       c

0  A  0.15  0.0750

1  A  0.25  0.1250

2  A  0.10  0.0500

3  B  0.20  0.2300

4  B  0.10  0.1150

5  B  0.25  0.2875

6  B  0.60  0.6900

7  C  0.50  0.6000

8  C  0.70  0.8400


查看完整回答
反對(duì) 回復(fù) 2023-02-07
  • 2 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)