亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

fill_fre_top_5()函數的返回值問題

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

有些疑惑:參數長度小于等于 5 的時候才有返回值,大于等于 5 的時候不應該是 None 嗎?

正在回答

4 回答

在流程上不會出現5個以上的情況,因為這個函數是在做了value_counts(),取前五個值后才會調用的。

留意:

value_counts().iloc[0:5,]

流程:

for?i,name?in?enumerate(df[['ind_var1_0','imp_sal_var16_ult1']].columns):
????##1.Index?Name
????index_name?=?df[name][~np.isin(df[name],missSet)].value_counts().iloc[0:5,].index.values
????##1.1?If?the?length?of?array?is?less?than?5
????index_name?=?fill_fre_top_5(index_name)

????json_fre_name[name]?=?index_name


1 回復 有任何疑惑可以回復我~
#1

蝦小斷 提問者

非常感謝!
2018-01-17 回復 有任何疑惑可以回復我~

統計的目的是為了計算變量最常出現的值(前五名)以及對應的頻數。

當一個變量,假設為收入,出現了超過5個以上不同的值,那么我們只需要對它使用value_count()后取前五位便能達到我們的統計目的,并且其輸出的格式也滿足了我們后續的入參需求,因此不需要返回None;

但是,如果特征的出現的值少于5個,我們需要把返回的結果進行NA的填充,以對齊其他大于5個值的結果,這時候fill_fre_top_5函數就到了這個作用。



0 回復 有任何疑惑可以回復我~

因為傳進去的value_count的長度最大等于5

df[name][~np.isin(df[name],missSet)].value_counts().iloc[0:5,]

iloc[0:5,]給限制了

截取iloc[0:5,]越界也不會報錯

df['ind_var1_0'].value_counts().iloc[0:5,]

長度只有2

但是不會報錯

有多少輸出多少:

0 ? ?75149
1 ? ? ?871
Name: ind_var1_0, dtype: int64

http://img1.sycdn.imooc.com//5a5f56810001802810740236.jpg

1 回復 有任何疑惑可以回復我~

我的意思是,這樣寫的話,傳來的參數有5個以上,返回的不是None嗎?

代碼里執行過了 value_count = fill_fre_top_5(value_count),可 value_count 是正常的

0 回復 有任何疑惑可以回復我~
#1

JustDoItImooc

因為傳進去的value_count的長度最大等于5 1 df[name][~np.isin(df[name],missSet)].value_counts().iloc[0:5,] iloc[0:5,]給限制了 截取iloc[0:5,]越界也不會報錯 1 df['ind_var1_0'].value_counts().iloc[0:5,] 長度只有2 但是不會報錯 有多少輸出多少: 0 75149 1 871 Name: ind_var1_0, dtype: int64 http://img1.sycdn.imooc.com//5a5f56810001802810740236.jpg
2018-01-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

fill_fre_top_5()函數的返回值問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號