为了账号安全,请及时绑定邮箱和手机立即绑定

Python制作数据分析工具

Alex_Cen 产品经理
难度初级
时长 1小时10分
学习人数
综合评分9.17
20人评价 查看评价
9.2 内容实用
9.1 简洁易懂
9.2 逻辑清晰
  • 1.统计指标示例-分位点

    # (10)quantile value

    np.percentile(df.iloc[:, 0], (1, 5, 25, 50, 75, 95, 99))    # 第二个参数是分位点,这个设置和用户定义有关

     

    df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)]     # 去除缺失值

    np.percentile(df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)], (1, 5, 25, 50, 75, 95, 99))      # 去除缺失值后进行分位点计算

     

    # 它没法像df那样做一个apply操作,apply返回的是一个数组,那么如何做呢?

    json_quantile = {}

     

    # 不用担心循环的效率,因为我们的列不会有很多,虽然样本(行)数会很大,所以一般情况足够用于我们进行数据分析了

    for i, name in enumerate(df.iloc[:, 0:3].columns):

        print('the {} columns: {}'.format(i, name))

        json_quantile[name] = np.percentile(df[name][~np.in1d(df[name], missSet)], (1, 5, 25, 50, 75, 95, 99))

     

    df_quantile = pd.DataFrame(json_quantile)[df.iloc[:, 0:3].columns].T    # 为了和之前的统计描述拼接起来,所以需要和之前的结果保持一致,需要做一下转置,但是列名不一致,需要先调用columns把所有的列按顺序发过去之后再转置


    查看全部
  • 1.统计指标示例-最小值/最大值

    # (8)Min Value

    np.min(df.iloc[:, 0])

     

    df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)]     # 去除缺失值

    np.min(df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)])   # 去除缺失值后进行最小值计算

     

    df_min = df.iloc[:, 0:3].apply(lambda x: np.min(x[~np.in1d(x, missSet)]))

     

    # (9)Max Value

    np.max(df.iloc[:, 0])

     

    df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)]     # 去除缺失值

    np.max(df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)])   # 去除缺失值后进行最大值计算

     

    df_max = df.iloc[:, 0:3].apply(lambda x: np.max(x[~np.in1d(x, missSet)]))


    查看全部
  • 1.统计指标实例-众数

    # (6)Mode Value

    df_mode = df.iloc[:, 0:3].apply(lambda x: stats.mode(x[~np.in1d(x, missSet)])[0][0])    # mode这个函数返回的是一个数组,对应每一列出现频率最高的数以及它出现的频数,[0][0]表示取的是这个数字

     

    # (7)Mode Percetage

    df_mode_count = df.iloc[:, 0:3].apply(lambda x: stats.mode(x[~np.in1d(x, missSet)])[1][0])   # [1][0]表示取的这个众数出现的频数

     

    df_mode_perct = df_mode_count/df.shape[0]       # df.shape[0]确定有多少个样本


    查看全部
  • 1.# (4)Mean Value

    np.mean(df.iloc[:, 0])   # 没有去除缺失值之前的均值很低

     

    df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)]    # 去除缺失值,np.in1d(df.iloc[:, 0], missSet)找到缺失值的位置,是缺失值返回true,但我们要找的是去除缺失值之后的数据

    np.mean(df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)])   # 去除缺失值后进行均值计算

     

    df_mean = df.iloc[:, 0:3].apply(lambda x: np.mean(x[~np.in1d(x, missSet)]))

     

    # (5)Median Value

    np.median(df.iloc[:, 0])    # 没有去除缺失值之前

     

    df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)]     # 去除缺失值

    np.median(df.iloc[:, 0][~np.in1d(df.iloc[:, 0], missSet)])      # 去除缺失值后进行计算

     

    df_median = df.iloc[:, 0:3].apply(lambda x: np.median(x[~np.in1d(x, missSet)]))

      

    重点是如何去除缺失值。


    查看全部
  • 1.统计指标示例-计数类

    ##1.Basic Analysis##

    # (1)Missing Value

    missSet = [np.nan, 9999999999, -999999]     # np.nan是numpy中缺失值的表示,后面两个数是分析得到的缺失值

     

    # (2)Count distinct

    len(df.iloc[:, 0].unique())     # df.iloc[:, 0]取第一列,unique()看这一列哪些不同的值,返回一个类似数组,然后len看有多少个

     

    count_un = df.iloc[:, 0:3].apply(lambda x: len(x.unique()))  # df.iloc[:, 0:3]取前三列,apply用于遍历,看看前三列每一列有多少个不同的值

     

    # (3)Zero Value  看看每一列有多少个值为0

    np.sum(df.iloc[:, 0] == 0)

     

    count_zero = df.iloc[:, 0:3].apply(lambda x: np.sum(x == 0))


    查看全部
  • 1.统计指标介绍:

    均值/中位数/最大值/最小值等

    计数类

    缺失值/方差等

    分位点(值的分布)/值的频数等


    查看全部
  • 1.数据获取:Kaggle

    https://img1.sycdn.imooc.com//5d54d2bf0001036a06890287.jpg

    Santander银行希望对满意和不满意的用户进行分类。背景是它存在一些潜在的不满意的用户,但无法提前知道。假如我们能提前知道的话,就可以提前为他们做好服务。我们需要通过它提供的用户的行为特征和问卷调查得出的因变量来构建一个模型,使用这个模型来尽早找到不满意的用户。这就是Kaggle比赛的背景。

    1. 数据读取:

    ##0.Read Data##

    df = pd.read_csv("./data/train.csv")         # 将数据文件读到内存中

    label = df['TARGET']        # 将数据集中TARGET列赋值给label

    df = df.drop(['ID','TARGET'],axis=1)       # 删除数据集中ID、TARGET两列


    查看全部
  • 1.依赖包包括:

    Numpy:存储和处理大型矩阵,对数组向量化

    Pandas:把数据读成dataframe形式,读写

    Scipy:计算函数、众数等

    2.依赖包的导入:

    # coding:utf-8

    from __future__ import division            # 确保一个数除以另外一个数不等于0,会返回一个浮点型的数,另外一种方法是使分母和分子做类型转换

    import numpy as np

    import pandas as pd

    from scipy import stats


    查看全部
  • 1. 数据诊断的目的:

    1) 了解特征的分布,缺失和异常等情况。(了解了这些情况我们才能更好地做特征工程和数据预处理)

    https://img1.sycdn.imooc.com//5d54c6a600014a7505530196.jpg

    2)统计指标可直接用于数据预处理

    数据预处理就是指比如说特征缺失值的填充,缺失值的填充是建模常用的手段。填充的目的有很多。在填充的时候大家一般会采用很多种办法。比如填一个0,-1,1这种常值进去,但是更多的人可能会填一些统计值,比如说中位数、众数这样的值进去。如果要用这种方法填数的话,一般需要对特征值重新计算一遍,如果每次都计算的话,这样会影响整个模型的效率。更好的办法:就是可以从前面预处理的过程和结果中把中位数和众数取到,直接填到缺失里面去,这样可以减少运行计算时间,因为我们只需要提取,不需要计算,这样的话会减少耗时。除了这个以外,我们也有很多的判断,比如数缺失值的比例,众数的比例,也是形容特征工程的一个环节。当我们整个建模的流程形成之后,这些数据诊断的结果也可以起到判断的作用。

    https://img1.sycdn.imooc.com//5d54c6c10001616606980254.jpg

    查看全部
    0 采集 收起 来源:1.2 案例介绍

    2019-08-15

  • 目标:

      1.掌握数据的统计指标

      2.利用Python制作数据诊断工具

      3.数据诊断工具的应用与测试

    大纲:

      1.依赖包介绍

      2.基本描述统计值

      3.特殊值描述值

      4.缺失值

      5.功能整合


    查看全部
  • ##0.Read Data##

    df = pd.read_csv("./data/train.csv")

    label = df['TARGET']

    df = df.drop(['ID','TARGET'],axis=1)

    查看全部
  • 数据获取与读取

      1.数据获取:kaggle

      2.数据读取

      数据链接:http://www.kaggle.com/c/santander-customer-satisfaction

    查看全部
  • 目标:

      1.掌握数据的统计指标

      2.利用Python制作数据诊断工具

      3.数据诊断工具的应用与测试

    大纲:

      1.依赖包介绍

      2.基本描述统计值

      3.特殊值描述值

      4.缺失值

      5.功能整合

    查看全部
  • 依赖包:

      1.Numpy

      2.Pandas

      3.Scipy

    依赖包的导入

    例:

      #-*-coding:utf-8-*-

      from __future__ import division  #为了避免一个数除以另一个数不为0

      import pandas as pd

      import numpy as np

      from scipy import stats

    查看全部
  •  数据诊断的目的

      1.了解特征的分布,缺失和异常等情况

      2.统计指标课直接用于数据与处理

    查看全部
    0 采集 收起 来源:1.2 案例介绍

    2019-03-19

举报

0/150
提交
取消
课程须知
适合人群:希望从传统分析人员转型到数据挖掘和机器学习领域的人员;技术储备:python基本知识,统计学基本知识
老师告诉你能学到什么?
1.用Python制作一个高效的数据诊断工具; 2.数据诊断的各种指标;

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!