目錄
第一章? ?數據分析簡介
第二章? ?數據獲取
第三章? ?單因子探索分析
參考資料
?
第一章? ?數據分析簡介
?
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 的類型
>>> type(df['satisfaction_level'])
>>> 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())
>>> 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數據分析與建模挖掘實戰》 ?慕課網實戰?
注:? 本博客僅作個人筆記學習、總結使用,不作任何商業用途
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
