1、理论铺垫

 DataframeSeries均适用

  ~集中趋势:均值mean()、中位数median()、与分位数quantile(q=0.25)、众数mode()

  ~离中趋势:标准差std()、方差var()

   数据分布:偏态skew()与峰态kurt()、正态分布与三大分布
正偏态(mean>median)

  import scipy.stats as ss

     正态分布:ss.norm 、卡方分布:ss.chi2 、t分布:ss.chi2、f分布:ss.chi2
  偏态系数:数据平均值偏离状态的衡量
  峰态系数:数据分布集中强度的衡量

~ 抽样定理:抽样误差、抽样精度

   data.sample(10)  #抽10个

data.sample(frac = 0.001)  #抽样百分比为0.001


2、数据分类


·         定类(类别):根据事物离散、无差别属性进行的分类,如:名族


·         定序(顺序):可以界定数据的大小,但不能测定差值:如:收入的低、中、高


·         定距(间隔):可以界定数据大小的同时,可测定差值,但无绝对零点,如:温度


·         定比(比率):可以界定数据大小,可测定差值,有绝对零点,如:身高、体重

3、单属性分析

3.1异常值分析

  离散异常值,连续异常值,常识异常值

 

3.2对比分析

  绝对数与相对数(比什么),时间、空间、经验与计划(如何比)

    绝对数比较:绝对的数字的比较,例如:收入

    相对数比较:将几个有联系的指标进联合,构成一个新的数

3.3结构分析

  各组成部分的分布与规律

3.4分布分析

  数据分布频率的显式分析

其中seaborn是matplotlib的封装

Seaborn官网: http://seaborn.pydata.org/api.html

(1)柱状图 --- 以纵轴表示数值大小

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#其中seaborn是matplotlib的封装
data = pd.read_csv('HR.csv',sep=',')
pd.set_option('display.max_columns',None) #控制列的输出
#处理异常之后的数据
data = data[data['last_evaluation']<=1][data['department']!='sale'][data['salary']!='nme']
#设置图画格式
sns.set_style(style="darkgrid")#style="whitegrid"
sns.set_context(context="poster",font_scale=0.5)
sns.set_palette(sns.color_palette('Reds')) plt.title('SALARY')
plt.xlabel('salary')
plt.ylabel('number')
#设置横轴的显示
plt.xticks(0.5+np.arange(len(data['salary'].value_counts())),data['salary'].value_counts().index)
#设置横轴显示的最小值是0,最大是4;纵轴显示的最小值是0,最大值是10000
plt.axis([0,4,0,10000])
plt.bar(0.5+np.arange(len(data['salary'].value_counts())),data['salary'].value_counts(),width=0.5)
for x,y in zip(0.5+np.arange(len(data['salary'].value_counts())),data['salary'].value_counts()):
plt.text(x,y,y,ha="center",va="bottom")#对每一类进行标注,标注的值为y,水平位置是center,垂直位置是bottom
plt.show() # sns.countplot(x="salary",data=data)
sns.countplot(x="salary",hue= "department",data=data)#多层绘制,例如以部门为分割
plt.show()

(2)直方图---以面积表示数值大小

      横轴表示数据类型,纵轴表示分布情况

plt.figure(figsize=(10,8))
plt.subplot(1,3,1)
#其中kde表示可密度估计,hist表示直方图
sns.distplot(data['satisfaction_level'],bins=10,kde=False,hist=True)
plt.subplot(1,3,2)
sns.distplot(data['last_evaluation'],bins=10,kde=True,hist=True)
plt.subplot(1,3,3)
sns.distplot(data['average_monthly_hours'],bins=10,kde=True,hist=True)
plt.show()

(3)箱线图

    用于显示一组数据分散情况的统计图

#saturation=0.75表示上四分位数,whis=3表示k=3,默认值是1.5,其中y表示呈现方式
sns.boxplot(y = data['time_spend_company'],saturation=0.75,whis=1.5)
plt.show()

(4)折线图

matplotlib--- plt.plot();seaborn--- sns.poinplot()

值得一提的是:sns中对折线图有两种画法

(见标黄部分,可以直接指定x和y,两种写法一样,结果还可以指定上下界----此处疯狂打call)

sub_data = data.groupby('time_spend_company').mean()
# print(sub_data)
sns.pointplot(sub_data.index,sub_data['left'])
# sns.pointplot(data['time_spend_company'],data['left'])
# plt.plot(sub_data.index,sub_data['left'],'ro-')
plt.show()

(5)饼图

seabon库中没有饼图的画法,只有matplotlib中有

libs = data['department'].value_counts().index
explodes = [0.1 if i == 'sales' else 0 for i in libs]
plt.pie(data['department'].value_counts(normalize=True),labels=libs,autopct="%.2f",colors=sns.color_palette('Reds'),explode = explodes)
plt.show()

第3章 探索性数据分析(单因子&对比)与可视化的更多相关文章

  1. 探索性数据分析EDA综述

    目录 1. 数据探索的步骤和准备 2. 缺失值处理 为什么需要处理缺失值 Why data has missing values? 缺失值处理的技术 3. 异常值检测和处理 What is an ou ...

  2. “全栈2019”Java第四十九章:重载与重写对比详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. HTML第三章:表单

    第三章:表单 表单标签form:<form></form>//相当于一张记录用户信息的单子    常用属性:method:表单的提交方式,常用的值有两个             ...

  4. 2017.2.28 activiti实战--第六章--任务表单(二)外置表单

    学习资料:<Activiti实战> 第六章 任务表单(二)外置表单 6.3 外置表单 考虑到动态表单的缺点(见上节),外置表单使用的更多. 外置表单的特点: 页面的原样显示 字段值的自动填 ...

  5. 2017.2.28 activiti实战--第六章--任务表单(一)动态表单

    学习资料:<Activiti实战> 第六章 任务表单(一)动态表单 内容概览:本章要完成一个OA(协同办公系统)的请假流程的设计,从实用的角度,讲解如何将activiti与业务紧密相连. ...

  6. 2017.2.22 activiti实战--第六章--任务表单

    学习资料:<Activiti实战> 第六章 任务表单 本章将一步步完成一个协同办公系统(OA)的请假流程的设计,讲解如何将Activiti和实际业务联系起来. 首先讲解动态表单与外置表单的 ...

  7. 探索性数据分析(Exploratory Data Analysis,EDA)

    探索性数据分析(Exploratory Data Analysis,EDA)主要的工作是:对数据进行清洗,对数据进行描述(描述统计量,图表),查看数据的分布,比较数据之间的关系,培养对数据的直觉,对数 ...

  8. python Pandas Profiling 一行代码EDA 探索性数据分析

    文章大纲 1. 探索性数据分析 代码样例 效果 解决pandas profile 中文显示的问题 1. 探索性数据分析 数据的筛选.重组.结构化.预处理等都属于探索性数据分析的范畴,探索性数据分析是帮 ...

  9. 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题

    动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...

随机推荐

  1. vi/vim 行删除操作

    好东西就要多用,vi/vim越用越喜欢了. 删除多行怎么办呢? 命令输入“:32,65d”,回车键,32-65行就被删除了.

  2. 【k8s学习笔记】使用 kubeadm 部署 v1.18.5 版本 Kubernetes集群

    说明 本文系搭建kubernetes v1.18.5 集群笔记,使用三台虚拟机作为 CentOS 测试机,安装kubeadm.kubelet.kubectl均使用yum安装,网络组件选用的是 flan ...

  3. SQL基础随记2 视图 存储过程

    SQL基础随记2 视图 存储过程   View CREATE/ALTER/DROP VIEW ViewName as SELECT(...) 可以在视图的基础上继续创建视图,即,将之前创建的视图当做表 ...

  4. POJ 3463 Sightseeing 题解

    题目 Tour operator Your Personal Holiday organises guided bus trips across the Benelux. Every day the ...

  5. SaaS 系统架构,Spring Boot 动态数据源实现!

    这段时候在准备从零开始做一套SaaS系统,之前的经验都是开发单数据库系统并没有接触过SaaS系统,所以接到这个任务的时候也有也些头疼,不过办法部比困难多,难得的机会. 在网上找了很多关于SaaS的资料 ...

  6. python三器一闭

    前言:python三器一闭i 包含 迭代器.生成器.装饰器,闭包 迭代器 概念:迭代器是一种可以记录可迭代对象遍历的位置,迭代器从第一个元素开始访问,直到访问所有元素访问结束,迭代器只会往前,不会后退 ...

  7. .NET WEB API关键过程 思维导图

    背景说明 近期在去面试的过程中,被问及有关WEB API的一些特性,一时竟不知该如何回答,故根据自己已知的知识,加上网上搜索的,详细列举了一下,期望对WEB API有一个比较开阔和全面的认知. 关键要 ...

  8. day45 数据库基础

    目录 一.存储引擎 二.数据类型 1 整形 2 浮点型 3 字符类型 3.1 类型 3.2 举例验证区别 3.3 对比优缺点 4 日期类型 5 枚举和集合类型 一.存储引擎 不同的存储引擎对应着不同的 ...

  9. python 并发 ThreadPoolExecutor

    正文:Executor是一个抽象类,子类: ThreadPoolExecutor和ProcessPoolExecutor ,一个线程池,一个进程池. future对象:在未来的某一时刻完成操作的对象. ...

  10. 08-Python面对对象进阶

    一.面向对象编程三大特征 Python是面向对象的语言,同样支持面向对象的编程的三大特征:继承,封装,多态. 封装是指隐藏对象的属性和实现细节,只对外提供必要的一些方法,私有属性,私有方法是实现封装地 ...