• 数据挖掘预处理之《单连续变量》


    统计数据:pd.describe()

      · 缺失值:df.isnull()    #df就是加载进来的数据,DataFrame类型的

      ·异常值: 箱型图模型

    画图

      ·分布:

        核密度估计:sns.kdeplot()

        直方图图:sns.distplot()

     

    判断方法:df.info()

    分类:  连续型(continuous)和标称型或分类变量(categorical)

    1 f= r'movies_metadata.csv'
    2 df =pd.read_csv(f)  #加载数据  df是DataFrame类型
    3 print(df.info())    #输出数据信息(数目、类型)  

    输出结果

    分析统计数据:df.describe()

    1 f= r'movies_metadata.csv'
    2 df =pd.read_csv(f)  #加载数据  df是DataFrame类型
    3 print(df.describe())    #输出统计信息

    输出结果

    缺失值、异常值单变量绘图,这几项都写在一个类里面,对号入座

     1 import pandas as pd
     2 import matplotlib.pyplot as plt
     3 import seaborn as sns
     4 import warnings
     5 warnings.filterwarnings('ignore')   #忽略警告
     6 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
     7 plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
     8 
     9 class PreProcess:
    10     def __init__(self,f):
    11         self.data =pd.read_csv(f)
    12 
    13     def missVal(self,col =None):
    14         '''缺失值'''
    15         raw,columns =self.data.shape    #形状:(行数,列数)
    16         if col:
    17             num =self.data[col].isnull().sum().sort_values()    #排序
    18         else:
    19             num =self.data.isnull().sum().sort_values()
    20         #print(col, r"缺失数:
    ", num)
    21         print(col,r"缺失值比例:
    ",num/raw)
    22 
    23     def abnormalVal(self,col):
    24         '''单连续变量异常值'''
    25         #箱型图模型
    26         colData =self.data[col]
    27         dscr =colData.describe() #统计数据
    28         iqr =dscr.loc['75%'] - dscr['25%']  #四分位间距 =上四分位数-下四分位数
    29         upBoundry =dscr.loc['75%'] +1.5*iqr    #上界
    30         lowBoundry =dscr.loc['25%'] - 1.5*iqr   #下界
    31         num = (colData <lowBoundry).sum() +sum(colData >upBoundry) #超过边界的算异常值
    32         print(col,"异常值数目:",num)
    33         print(col,"异常值占比:",num/colData.shape[0])
    34         #self.data.boxplot(col);plt.show() #直接画箱型图
    35 
    36     def sDraw(self,col):
    37         '''单连续变量分布图'''
    38         sns.kdeplot(self.data[col].values,shade=True)   #核密度估计  KDE(Kernel Density Estimate)
    39         plt.title(col)  #设置标题
    40         plt.show()
    41         sns.distplot(self.data[col].values,bins=10,kde=True)    #直方图 bins:直方图数目、kde:是否画kde曲线
    42         plt.title(col)  #设置标题
    43         plt.show()

    补充:两个图主要看分布

    kedplot 的图

    distplot()

    这个有一点重尾分布:评论数目较少的电影(样本/每一行的数据),占了70%左右

        

  • 相关阅读:
    【iOS CocoaPods篇】iOS CocoaPods一些特别的用法 指定版本、版本介绍、忽略警告
    【iOS CocoaPods篇】iOS 10.10 10.11 10.12 安装升级CocoPods
    iOS程序中的内存分配 栈区堆区全局区(转)
    retain和strong、assign和weak的区别(转)
    (ios实战):retain,copy,assign及autorelease ,strong,weak(转)
    malloc()与 alloc()区别 (转)
    iOS开发--KVC&KVO
    iOS开发之支付功能概述(转)
    disptch_after 自递归
    makeObjectsPerformSelector 方法的用法
  • 原文地址:https://www.cnblogs.com/vvlj/p/10639050.html
Copyright © 2020-2023  润新知