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

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

python pandas 按值計(jì)數(shù)重新標(biāo)記值

python pandas 按值計(jì)數(shù)重新標(biāo)記值

守著一只汪 2023-09-12 17:34:33
給出以下示例:example = pd.DataFrame({'y':[1,1,1,1,1,1,1,1,1,1,2,2,2,2,0,0,-1,-1,-1]})我想按頻率計(jì)數(shù)按降序重新標(biāo)記這些值。因此,我希望將案例數(shù)最多的值(例如 1)替換為 0,然后將下一個(gè)最大的 bin 替換為 1,依此類推所有值。需要注意的是我想忽略值為 -1 的情況。如果我運(yùn)行value_counts(),我可以看到這個(gè):y  1    10 2     4-1     3 0     2dtype: int64但我想要一個(gè) pythonic 和非 hacky/clean 解決方案來創(chuàng)建以下內(nèi)容:    y0   01   02   03   04   05   06   07   08   09   010  111  112  113  114  215  216 -117 -118 -1y  0    10 1     4-1     3 2     2dtype: int64(理想情況下,我也保留舊的專欄,以便保存良好的記錄)。我可以循環(huán)每個(gè)值,檢查它是否不是 -1,然后value_counts()用迭代次數(shù)替換它,但這感覺維護(hù)成本很高。有沒有一種干凈的方法來實(shí)現(xiàn)它?
查看完整描述

1 回答

?
米脂

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

由after?withoutSeries.map的索引創(chuàng)建的字典使用:SeriesSeries.value_counts-1


s = example['y'].value_counts().drop(-1)

d = {v:k for k, v in dict(enumerate(s.index)).items()}

或者:


s = example['y'].value_counts().drop(-1)

d = dict(zip(s.index, range(len(s))))

m = example['y'].ne(-1)

example.loc[m, 'y'] = example.loc[m, 'y'].map(d)

print (example)

? y

0? ?0

1? ?0

2? ?0

3? ?0

4? ?0

5? ?0

6? ?0

7? ?0

8? ?0

9? ?0

10? 1

11? 1

12? 1

13? 1

14? 2

15? 2

16 -1

17 -1

18 -1

另一個(gè)想法是增加-1價(jià)值:-1dictionary


s = example['y'].value_counts().drop(-1)

d = {**{-1:-1}, **dict(zip(s.index, range(len(s))))}


example['y'] = example['y'].map(d)




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

添加回答

舉報(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)