99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2021-03-03 閱讀量: 669
python中通過給一個變量的值打標簽生成另一個變量,用循環(huán)結(jié)合iloc賦值太慢怎么辦?

python中(DataFrame數(shù)據(jù)框)通過給一個變量的值打標簽生成另一個變量,用循環(huán)結(jié)合iloc賦值太慢怎么辦?


學生:


老師 我問你個問題

for i in range(0,len(rfm_.iloc[:,0])):
    if rfm_.iloc[i,0] > F_mean:
        rfm_.iloc[i,0] = 1
    else:
        rfm_.iloc[i, 0] = 0
    if rfm_.iloc[i,1] < R_mean:
        rfm_.iloc[i, 1] = 1
    else:
        rfm_.iloc[i, 1] = 0
    if rfm_.iloc[i,2] > M_mean:
        rfm_.iloc[i, 2] = 1
    else:
        rfm_.iloc[i, 2] = 0




如果就這樣打標簽的話 我這個用戶量來計算的話 代碼要跑很久嗎。。。

也就126W

怎么跑不出來了

老師:是的,會跑很久,因為這個命令效率比較低

學生:

不是 我現(xiàn)在是打標簽
就是用用戶的指標均值作為閾值
所以就是很慢的是吧

就是我用for循環(huán)的話就是很慢 那有什么比較快的方法嗎
好糾結(jié)

老師:你是要根據(jù)一個變量生成一個標簽變量嗎

學生:是的

老師:我想想啊

學生:我飯都吃完了 還沒跑出來。。我感覺哪里有問題哇

老師:你的那個變量是什么樣子的,取值什么樣,給我截個圖

學生:

5.png

然后跟指標的均值做比較 去打標簽

1.png


我還沒敢家維度
這都跑不出來了
不知道是代碼有問題還是什么原因 都好久了

老師:
你把rfm那個數(shù)據(jù)框的表頭和前幾條記錄給我貼一下
這樣方便我給你寫命令

學生:

F R M
用戶ID
_637276942176622229 11 45.0 166.17
_637276942176769136 11 50.0 66.73
_637276942177839833 37 18.0 143.02
_637276942181248783 24 29.0 167.35
_637276942181646749 4 27.0 39.75

老師:然后把打標簽的規(guī)則告訴我,也就是生成三個標簽變量對吧

學生:

# 標注每個用戶的RFM值 == 這里用各指標的均值作為閾值
R_mean = rfm_["R"].mean()
F_mean = rfm_["F"].mean()
M_mean = rfm_["M"].mean()
print(R_mean,F_mean,M_mean)

老師:然后打標簽為0或者1對不

學生:

這個循環(huán)不敢跑了 感覺會耽誤好多時間 不知道什么鬼

老師:


循環(huán)不能大規(guī)模用


R_mean = rfm_["R"].mean()
F_mean = rfm_["F"].mean()
M_mean = rfm_["M"].mean()
rfm_["RLabel"]=rfm_["R"].map(lambda x:1 if x<R_mean else 0)
rfm_["FLabel"]=rfm_["F"].map(lambda x:1 if x>F_mean else 0)
rfm_["MLabel"]=rfm_["M"].map(lambda x:1 if x>M_mean else 0)


執(zhí)行這個代碼試試,這個速度比較快


那個循環(huán)要一個一個循環(huán),很慢


這個map是同時執(zhí)行所有的記錄,會很快的

學生:


臥槽。。


這個這么快


一秒。。。


真NB臥槽

0.0000
0
關(guān)注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據(jù)
推薦帖子