【Python数据分析】概述与探索分析笔记

目录

第一章   数据分析简介

第二章   数据获取

第三章   单因子探索分析

参考资料


 

第一章   数据分析简介

 

1-1、数据分析流程

A 数据获取
B 探索分析与可视化(报表)
C 预处理理论(去除脏数据)   
D 分析建模
E 模型评估
其中,CDE 为数据建模与挖掘 【核心内容】

 

1-2、前置知识

前置知识:Python3,Python数据分析-基础技术篇;数学;
编译环境:Python3.6+,Pycharm,Anaconda

 

1-3、数据分析概述

数据分析的含义与目标:统计分析方法,提取有用信息,并进行总结与概括的过程

 

1-4、使用Python进行数据分析

开发效率高、运行速度慢、胶水语言(比如嵌入C语言配合使用)

 

1-5、数据分析学习方法

A 重视理论
B 勤于查阅
C 身体力行
D 联系实际

 

第二章   数据获取

2-1、数据获取手段

A 数据仓库
B 监测与抓取
C 填写、日志、埋点
D 计算

 

2-2、数据仓库(DW)

1、概念:数据载体,业务数据汇总处理
(1)全部事实的记录
(2)部分维度与数据的整理(数据集市-DM)

2、数据库 VS 仓库
(1)数据库面向业务存储(保证高并发、快速读写、数据结构精简),仓库面向主题存储(主题:较高层次上对分析对象数据的一个完整并且一直的描述,比如购买图书发展的多维度存储信息)
(2)数据库针对应用(OLTP,联机事务处理),仓库针对分析(OLAP,联机数据处理)
(3)数据库组织规范,仓库可能冗余,相对变化大,数据量大

 

2-3、监测与抓取

1、直接解析网页、接口、文件的信息
2、Python常用工具:
urllib、urllib2、requests、scrapy
PhantomJS、beautifulSoup、Xpath(lxml)

 

2-4、填写、日志、埋点

1、用户填写信息
2、APP或网页埋点(特定流程的信息记录点)
3、操作日志:文件、汇总到数据仓库

 

2-5、计算

通过已有数据计算生成衍生数据,例如:统计报表某些项目


2-6、数据学习网站

1、数据竞赛网站(Kaggle & 阿里云-天池)
2、数据集网站(ImageNet / Open Images)
3、各领域统计数据(统计局、政府机构、公司财报等)

 

第三章   单因子探索分析

3-1 数据案例介绍
HR.csv

import pandas as pd
df = pd.read_csv("./data/HR.csv")    # 读取csv文件
df.head(10)            # 读取前10条数据


3-2 集中趋势、离中趋势
集中趋势:均值、中位数与分位数、众数
离中趋势:标准差、方差
数据分布:偏态与峰态、正太分布与三大分布
抽样理论:抽样误差、抽样精度

四分位数计算方法,n 是数列的数量
Q1的位置=(n+1)* 0.25
Q2的位置=(n+1)* 0.5
Q3的位置=(n+1)* 0.75


3-3 数据分布:偏态与峰度
偏态系数与峰态系数
均值偏大(对比中位数):正偏

正态分布与三大分布(卡方分布、T分布、F分布)
标准正态分布:均值为0,方差为1
卡方分布:几个标准正态分布的平方和满足一个分布,这个分布就是卡方分布
T分布:正态分布的一个随机变量除以一个服从卡方分布的变量
F分布:两个卡方分布的比构成的


3-4 抽样理论
抽样误差与精度

 

3-5 代码实例

以下代码由Python Console (Pycharm) 实现, 也可用Anacoda 或  Jupyter and the future of IPython — IPython 编程

注: 红色代码为代码实现,  黑色为控制台提示信息或者代码执行结果 

 

Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32
>>> import pandas as pd
>>> df = pd.read_csv('./data/HR.csv')      # 读取csv文件
>>> df

       satisfaction_level  last_evaluation  ...  department  salary
0                    0.38             0.53  ...       sales     low
1                    0.80             0.86  ...       sales  medium
2                    0.11             0.88  ...       sales  medium
3                    0.72             0.87  ...       sales     low
4                    0.37             0.52  ...       sales     low
5                    0.41             0.50  ...       sales     low
6                    0.10             0.77  ...       sales     low
7                    0.92             0.85  ...       sales     low
8                    0.89             1.00  ...       sales     low
9                    0.42             0.53  ...       sales     low
10                   0.45             0.54  ...       sales     low
11                   0.11             0.81  ...       sales     low
12                   0.84             0.92  ...       sales     low
13                   0.41             0.55  ...       sales     low
14                   0.36             0.56  ...       sales     low
15                   0.38             0.54  ...       sales     low
16                   0.45             0.47  ...       sales     low
17                   0.78             0.99  ...       sales     low
18                   0.45             0.51  ...       sales     low
19                   0.76             0.89  ...       sales     low
20                   0.11             0.83  ...       sales     low
21                   0.38             0.55  ...       sales     low
22                   0.09             0.95  ...       sales     low
23                   0.46             0.57  ...       sales     low
24                   0.40             0.53  ...       sales     low
25                   0.89             0.92  ...       sales     low
26                   0.82             0.87  ...       sales     low
27                   0.40             0.49  ...       sales     low
28                   0.41             0.46  ...  accounting     low
29                   0.38             0.50  ...  accounting     low
                   ...              ...  ...         ...     ...
14972                0.11             0.97  ...  accounting  medium
14973                0.36             0.52  ...  accounting  medium
14974                0.36             0.54  ...  accounting  medium
14975                0.10             0.79  ...          hr  medium
14976                0.40             0.47  ...          hr  medium
14977                0.81             0.85  ...          hr  medium
14978                0.40             0.47  ...          hr  medium
14979                0.09             0.93  ...   technical  medium
14980                0.76             0.89  ...   technical    high
14981                0.73             0.93  ...   technical     low
14982                0.38             0.49  ...   technical  medium
14983                0.72             0.84  ...   technical  medium
14984                0.40             0.56  ...   technical  medium
14985                0.91             0.99  ...   technical  medium
14986                0.85             0.85  ...   technical     low
14987                0.90             0.70  ...   technical     low
14988                0.46             0.55  ...   technical     low
14989                0.43             0.57  ...   technical     low
14990                0.89             0.88  ...     support     low
14991                0.09             0.81  ...     support     low
14992                0.40             0.48  ...     support     low
14993                0.76             0.83  ...     support     low
14994                0.40             0.57  ...     support     low
14995                0.37             0.48  ...     support     low
14996                0.37             0.53  ...     support     low
14997                0.11             0.96  ...     support     low
14998                0.37             0.52  ...     support     low
14999                 NaN             0.52  ...     support     low
15000                 NaN        999999.00  ...        sale     low
15001                0.70             0.40  ...        sale     nme
[15002 rows x 10 columns]

>>> type(df)     # 检测 df 的类型
<class 'pandas.core.frame.DataFrame'>
>>> type(df['satisfaction_level'])
<class 'pandas.core.series.Series'>


>>> df.mean()      # 求均值
satisfaction_level         0.612839
last_evaluation           67.373732
number_project             3.802693
average_monthly_hours    201.041728
time_spend_company         3.498067
Work_accident              0.144581
left                       0.238235
promotion_last_5years      0.021264
dtype: float64

>>> df.median()     # 求中位数
satisfaction_level         0.64
last_evaluation            0.72
number_project             4.00
average_monthly_hours    200.00
time_spend_company         3.00
Work_accident              0.00
left                       0.00
promotion_last_5years      0.00
dtype: float64

>>> df.quantile(q=0.25)     # 四分位数
satisfaction_level         0.44
last_evaluation            0.56
number_project             3.00
average_monthly_hours    156.00
time_spend_company         3.00
Work_accident              0.00
left                       0.00
promotion_last_5years      0.00
Name: 0.25, dtype: float64

>>> df['satisfaction_level'].quantile(q=0.25) 
0.44
>>> df['satisfaction_level'].quantile(q=0.5)
0.64
>>> df['satisfaction_level'].quantile(q=0.75)
0.82

>>> df.mode()      # 众数
   satisfaction_level  last_evaluation  ...  department  salary
0                 0.1             0.55  ...       sales     low
1                 NaN              NaN  ...         NaN     NaN
[2 rows x 10 columns]

>>> df['department'].mode()   
0    sales
dtype: object
>>> type(df['department'].mode())
<class 'pandas.core.series.Series'>

>>> df.sum()      # 求和
satisfaction_level                                                 9192.59
last_evaluation                                                1.01074e+06
number_project                                                       57048
average_monthly_hours                                              3016028
time_spend_company                                                   52478
Work_accident                                                         2169
left                                                                  3574
promotion_last_5years                                                  319
department               salessalessalessalessalessalessalessalessaless...
salary                   lowmediummediumlowlowlowlowlowlowlowlowlowlowl...
dtype: object

>>> df['satisfaction_level'].sum()
9192.59


>>> df['satisfaction_level'].std()  # 标准差
0.24862338135944925
>>> df['satisfaction_level'].var()  # 方差
0.061813585758606134
>>> df['satisfaction_level'].skew()  # 偏态系数
-0.47643761717258093
>>> df['satisfaction_level'].kurt()  # 峰态系数
-0.6706959323886252

 

参考资料

《Python3数据分析与建模挖掘实战》  慕课网实战 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值