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ù)長度小于等于 5 的時候才有返回值,大于等于 5 的時候不應該是 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ù)長度小于等于 5 的時候才有返回值,大于等于 5 的時候不應該是 None 嗎?
2018-01-17
舉報
2018-01-17
在流程上不會出現(xiàn)5個以上的情況,因為這個函數(shù)是在做了value_counts(),取前五個值后才會調(diào)用的。
留意:
流程:
2018-01-17
統(tǒng)計的目的是為了計算變量最常出現(xiàn)的值(前五名)以及對應的頻數(shù)。
當一個變量,假設為收入,出現(xiàn)了超過5個以上不同的值,那么我們只需要對它使用value_count()后取前五位便能達到我們的統(tǒng)計目的,并且其輸出的格式也滿足了我們后續(xù)的入?yún)⑿枨螅虼瞬恍枰祷豊one;
但是,如果特征的出現(xiàn)的值少于5個,我們需要把返回的結(jié)果進行NA的填充,以對齊其他大于5個值的結(jié)果,這時候fill_fre_top_5函數(shù)就到了這個作用。
2018-01-17
因為傳進去的value_count的長度最大等于5
iloc[0:5,]給限制了
截取iloc[0:5,]越界也不會報錯
長度只有2
但是不會報錯
有多少輸出多少:
0 ? ?75149
1 ? ? ?871
Name: ind_var1_0, dtype: int64
2018-01-17
我的意思是,這樣寫的話,傳來的參數(shù)有5個以上,返回的不是None嗎?
代碼里執(zhí)行過了 value_count = fill_fre_top_5(value_count),可 value_count 是正常的