fill_fre_top_5()函數(shù)的返回值問題
def?fill_fre_top_5(x): ????if?len(x)?<=?5: ????????new_array?=?np.full(5,?np.nan) ????????new_array[0:len(x)]?=?x ????????return?new_array
有些疑惑:參數(shù)長(zhǎng)度小于等于 5 的時(shí)候才有返回值,大于等于 5 的時(shí)候不應(yīng)該是 None 嗎?
def?fill_fre_top_5(x): ????if?len(x)?<=?5: ????????new_array?=?np.full(5,?np.nan) ????????new_array[0:len(x)]?=?x ????????return?new_array
有些疑惑:參數(shù)長(zhǎng)度小于等于 5 的時(shí)候才有返回值,大于等于 5 的時(shí)候不應(yīng)該是 None 嗎?
2018-01-17
舉報(bào)
2018-01-17
在流程上不會(huì)出現(xiàn)5個(gè)以上的情況,因?yàn)檫@個(gè)函數(shù)是在做了value_counts(),取前五個(gè)值后才會(huì)調(diào)用的。
留意:
流程:
2018-01-17
統(tǒng)計(jì)的目的是為了計(jì)算變量最常出現(xiàn)的值(前五名)以及對(duì)應(yīng)的頻數(shù)。
當(dāng)一個(gè)變量,假設(shè)為收入,出現(xiàn)了超過5個(gè)以上不同的值,那么我們只需要對(duì)它使用value_count()后取前五位便能達(dá)到我們的統(tǒng)計(jì)目的,并且其輸出的格式也滿足了我們后續(xù)的入?yún)⑿枨?,因此不需要返回None;
但是,如果特征的出現(xiàn)的值少于5個(gè),我們需要把返回的結(jié)果進(jìn)行NA的填充,以對(duì)齊其他大于5個(gè)值的結(jié)果,這時(shí)候fill_fre_top_5函數(shù)就到了這個(gè)作用。
2018-01-17
因?yàn)閭鬟M(jìn)去的value_count的長(zhǎng)度最大等于5
iloc[0:5,]給限制了
截取iloc[0:5,]越界也不會(huì)報(bào)錯(cuò)
長(zhǎng)度只有2
但是不會(huì)報(bào)錯(cuò)
有多少輸出多少:
0 ? ?75149
1 ? ? ?871
Name: ind_var1_0, dtype: int64
2018-01-17
我的意思是,這樣寫的話,傳來的參數(shù)有5個(gè)以上,返回的不是None嗎?
代碼里執(zhí)行過了 value_count = fill_fre_top_5(value_count),可 value_count 是正常的