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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果列中存在任何數(shù)字,則將總值指定為 1,否則指定為 0

如果列中存在任何數(shù)字,則將總值指定為 1,否則指定為 0

心有法竹 2023-12-08 17:12:26
我有一個與下面的示例類似的數(shù)據(jù)集:| id | old_a | old_b | new_a | new_b ||----|-------|-------|-------|-------|| 6  | 3     | 0     | 0     | 0     || 6  | 9     | 0     | 2     | 0     || 13 | 3     | 0     | 0     | 0     || 13 | 37    | 0     | 0     | 1     || 13 | 30    | 0     | 0     | 6     || 13 | 12    | 2     | 0     | 0     || 6  | 7     | 0     | 2     | 0     || 6  | 8     | 0     | 0     | 0     || 6  | 19    | 0     | 3     | 0     || 6  | 54    | 0     | 0     | 0     || 87 | 6     | 0     | 2     | 0     || 87 | 11    | 1     | 1     | 0     || 87 | 25    | 0     | 1     | 0     || 87 | 10    | 0     | 0     | 0     || 9  | 8     | 1     | 0     | 0     || 9  | 19    | 0     | 2     | 0     || 9  | 1     | 0     | 0     | 0     || 9  | 34    | 0     | 7     | 0     |我為上表提供了這個示例數(shù)據(jù)集:data=[[6,3,0,0,0],[6,9,0,2,0],[13,3,0,0,0],[13,37,0,0,1],[13,30,0,0,6],[13,12,2,0,0],[6,7,0,2,0],                                 [6,8,0,0,0],[6,19,0,3,0],[6,54,0,0,0],[87,6,0,2,0],[87,11,1,1,0],[87,25,0,1,0],[87,10,0,0,0],                                [9,8,1,0,0],[9,19,0,2,0],[9,1,0,0,0],[9,34,0,7,0]]data= pd.DataFrame(data,columns=['id','old_a','old_b','new_a','new_b'])我想查看每個 id 的“new_a”和“new_b”列,即使每個 id 的這兩列中存在單個值,我也想將其計為 1,而不管任何值出現(xiàn)的次數(shù)并分配如果不存在任何值,則為 0。例如,如果我查看 id '9',new_a 中有兩個不同的值,但我想將其計為 1。同樣,對于 id '13',new_a 中沒有值,所以我想指定為 0。我的最終輸出應(yīng)該是這樣的:| id | new_a | new_b ||----|-------|-------|| 6  | 1     | 0     || 9  | 1     | 0     || 13 | 0     | 1     || 87 | 1     | 0     |我最終想計算使用 new_a 和 new_b 的客戶端百分比。所以從上表來看,75%的客戶端使用new_a,25%的客戶端使用new_b。我是 python 的初學(xué)者,不知道如何繼續(xù)。
查看完整描述

1 回答

?
ITMISS

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

使用GroupBy.any, 因為0像 s 一樣進(jìn)行處理False并將輸出布爾值轉(zhuǎn)換為整數(shù):

df = data.groupby('id')[['new_a','new_b']].any().astype(int).reset_index()

print (df)

? ?id? new_a? new_b

0? ?6? ? ? 1? ? ? 0

1? ?9? ? ? 1? ? ? 0

2? 13? ? ? 0? ? ? 1

3? 87? ? ? 1? ? ? 0

mean對于上述輸出的使用百分比:


s = df[['new_a','new_b']].mean().mul(100)

print (s)

new_a? ? 75.0

new_b? ? 25.0

dtype: float64


查看完整回答
反對 回復(fù) 2023-12-08
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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