fill_fre_top_5()函数的返回值问题

来源:3-6 3.6 描述统计-频数

虾小断

2018-01-17 14:55

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回答

  • Alex_Cen
    2018-01-17 18:07:02
    已采纳

    在流程上不会出现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


    虾小断

    非常感谢!

    2018-01-17 18:09:22

    共 1 条回复 >

  • Alex_Cen
    2018-01-17 17:18:24

    统计的目的是为了计算变量最常出现的值(前五名)以及对应的频数。

    当一个变量,假设为收入,出现了超过5个以上不同的值,那么我们只需要对它使用value_count()后取前五位便能达到我们的统计目的,并且其输出的格式也满足了我们后续的入参需求,因此不需要返回None;

    但是,如果特征的出现的值少于5个,我们需要把返回的结果进行NA的填充,以对齐其他大于5个值的结果,这时候fill_fre_top_5函数就到了这个作用。



  • JustDoItImooc
    2018-01-17 21:58:33

    因为传进去的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://img.mukewang.com/5a5f56810001802810740236.jpg

  • 虾小断
    2018-01-17 17:40:54

    我的意思是,这样写的话,传来的参数有5个以上,返回的不是None吗?

    代码里执行过了 value_count = fill_fre_top_5(value_count),可 value_count 是正常的

    JustDo...

    因为传进去的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://img.mukewang.com/5a5f56810001802810740236.jpg

    2018-01-17 21:59:42

    共 1 条回复 >

Python制作数据分析工具

用Python制作一个高效的数据诊断工具

29643 学习 · 29 问题

查看课程

相似问题