陳擎文教學網:pandas商業數據程式分析(完整版)
數據分析師:21 世紀最性感的工作
自從《哈佛商業評論》2012 年 10 月以一篇《數據分析師:21 世紀最性感的工作》爆紅後,協助企業進行大數據分析的「數據分析師」或「資料科學家」,就被視為是近年最熱門的工作

☎數據分析的一體化流程:數據採集 ➜ 數據清洗 ➜ 數據『查詢、計算』 ➜ 數據分析與挖掘 ➜ 數據可視化
☎工作職稱:DA/BA/DS/DE(Business Analyst商業分析師/Data Analyst資料分析師/Data Scientist資料科學家/Data Engineer數據工程師)
研究數據分析的4步驟圖數據分析職位的技能光譜圖商業分析決策的4步驟圖各種工具常用工具數據工具重要性排行榜2020職缺數排行榜2016職缺數排行榜2016使用度排行榜2016
☎相關證照:
中華企業資源規劃學會,大數據分析師商用數據應用師

☎精簡版網站: pandas商業數據程式分析(精簡版)


資源(Resource)

作業(homework)

chp0.前言,與什麼是大數據

chp1.安裝與使用python的四種方法

chp2.Pandas與數據分析

📣chp3.python基礎

📣chp4.Pandas基礎入門練習

📣chp5.Pandas一維資料結構:Series

chp6.Pandas二維資料結構:DataFrame

📣chp6-1.建立DataFrame

📣chp6-2.DataFrame的5個屬性:index,columns,values內容,shape維度,dtypes資料型態

chp6-3.列索引鍵有自動對齊的功能

📣chp6-4.數據清理:處理缺值NAN(檢查是否有缺值,統計總數,刪除,填滿缺值)

⚠️chp6-5.DataFrame定點取值,三種格式

📣chp6-6.新增一欄/一列

📣chp6-7.用軸axis來輔助函數計算(mean,sum,max,min)

chp6-8.篩選資料2種方法:條件查詢,query

📣chp6-9.DataFrame的3種合併:concat,append,merge

📣chp6-10.DataFrame的常用函數(排序,max,min,sum,mean,出現次數value_counts)

chp6-11.數據清理:函數處理日期資料型態

⚠️chp6-12.進階計算:使用自訂映射函數:map,applymap,apply來轉換計算

chp6-13.輸出到excel,建立sheet,並且繪圖

📣chp6-14.表格視覺化(熒光筆標註重點),設定樣式style:反白標註highlight_max,漸層標註gradient,柱狀圖標註bar,數字精度set_precision,表格標題,apply/applymap迴圈控制標註

chp7.Pandas的繪圖

chp8.數據分析(統計,比較,預測)(統計出現次數,分類比較,預測趨勢)

📣chp8-1.頻數分析(一維欄位,value_counts)

📣chp8-2.(分1群)比較分析(一維欄位分群後,對應第2欄位統計,groupby)

📣chp8-3.描述性統計分析,直方圖,箱型圖

📣chp8-4.(分2群)多層分群,多層索引鍵分析的2種方法

☎chp8-5.(分2群)交叉分析表,樞紐分析表

☎chp8-6.Groupby分群分析的5種題型

☎☎☎chp8-7.樞紐分析表,交叉分析圖的花式變化與進階技巧

chp8-8.關聯性分析association

chp8-9.趨勢分析trend,迴歸分析regression,預測分析

chp8-10.分類預測classification,集群預測clustering,序列樣式sequence pattern

chp9.數據清理:字串處理,正規表達式,日期處理,電話處理,Email處理,分割字串

chp10.一行程式:指令串接

chp11.讀取各種資料庫檔案

chp11-1.noSQL:csv

chp11-2.noSQL:json

chp11-3.noSQL:xml

chp11-4.noSQL:字典dict,串列list

chp11-5.noSQL:資料集dataset

chp11-6.noSQL:SQLite

chp11-7.SQL:mySQL

chp11-8.noSQL:MongoDb

chp11-9.noSQL:網頁

📣chp11-10.noSQL:把excel/csv傳到網站空間,分析結果讓主管也能夠存取

chp12.網路爬蟲:web crawler

chp12-1.Pandas讀取網頁表格

chp12-2.讀取html網頁:Request

chp12-3.分析html標籤tag內容:BeautifulSoup

☎☎chp13.需要寫SQL語法的連線mySQL:pymysql
--- SQL語法與Pandas的指令對照

☎☎chp14.不需要寫SQL語法的連線mySQL:sqlalchemy

chp21.實例:鐵達尼號資料分析

chp22.實例:系所生源分析

chp23.實例:業務銷售分析

chp24.實例:股票市場分析

chp25.實例:問卷資料分析

chp30.電商數據分析:淘寶服飾店3年數據

chp31.市場分析:市場佔有率分析(3年驅蟲劑數據)

chp32.市場分析:市場趨勢分析(3年驅蟲劑數據)

chp33.市場分析:細分市場分析

chp34.市場分析:消費者需求分析

chp35.運營分析:店鋪數據化運營的SEO關鍵字詞根與統計

chp36.運營分析:商品推廣方案分析

chp37.運營分析:競品分析(追踪競爭對手的SKU庫存價格)

chp38.電商行銷:基於關聯規則的產品推薦

chp39.電商行銷:基於聚類演算法的商品推薦

chp40.電商行銷:基於協同過濾演算法的產品推薦

chp41.銷售預測:基於業務邏輯的預測演算法模型

chp42.庫存預測:基於時序演算法預測庫存

chp43.庫存預測:電商的庫存預測演算法建模

chp44.銷售預測:用戶成單預測

chp45.用戶預測:用戶流失預測


pandas學習流程圖綱要flow chart(簡易重點):




(1)新增:
☎新增列,新增欄位:df[], df.loc[]:6-6-1
☎資料合併:concat,append,merge:

(2)修改(資料清理):
☎修改列,修改欄位:df[], df.loc[]:6-2-3
☎查詢缺值:df.isna(),df.isnull() : 6-4-16-4-2
☎修改缺值:填值:df.fillna(值): 6-4-36-4-46-4-5 <
☎修改文字:
☎修改日期:

(3)刪除(資料清理):
☎刪除列,刪除欄位:df[], df.loc[]:4-13
☎刪除缺值:df.dropna()

(4)查詢:
(4-1)查詢:
☎定位取值:df[], df.iloc[], df.loc[]:6-5-06-5-1
☎條件查詢:2步驟條件查詢,多條件查詢:()&(),()|():4-20
☎df.query()
☎關鍵字查詢:.str.contains():4-16
☎排序查詢:.sort_values(“欄位”,ascending=False):6-10-5

(4-2)計算:
☎基本計算:Axis,欄計算,列計算:max,min,mean,sum, std,median:6-7-1
☎計算出現次數:value_counts
☎進階計算:使用自訂映射函數:map,applymap,apply來轉換計算: 6-12-16-12-26-12-36-12-46-12-56-12-66-12-7

(4-3)分析:
☎交叉分析:groupby...unstack
☎樞紐分析:pivot_table

(4-4)視覺化:
☎表格視覺化:表格標註重點: 6-12-56-12-66-12-7
☎圖形視覺化:

資源
線上黑板( Online blackboard) 廣播教學 Zuvio Goole輸入法(Input:exe)
上課參考教材 書籍:用Pandas掌握商務大數據分析 進階書籍:Python商業數據分析:零售和電子商務案例 pandas官網(英文) w3schools的pandas教學(英文)
pandas參考教材 w3Cschool的pandas教學(中文) Steam教學網-python 蓋若pandas 教程 pandas的df的操作函數
colab繪圖如何顯示中文,方法1 ☎#colab顯示繁體中文,方法1 問題:matplotlib繪圖,會發生中文無法顯示的問題
參考:colab繪圖如何顯示中文
程式碼
#--------------------------------
# colab繪圖顯示繁體中文
#--------------------------------
import matplotlib
# 先下載台北黑體字型
!wget -O taipei_sans_tc_beta.ttf https://drive.google.com/uc?id=1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_&export=download import matplotlib
# 新增字體
matplotlib.font_manager.fontManager.addfont('taipei_sans_tc_beta.ttf')
# 將 font-family 設為 Taipei Sans TC Beta
# 設定完後,之後的圖表都可以顯示中文了
matplotlib.rc('font', family='Taipei Sans TC Beta')
colab繪圖如何顯示中文,方法2 ☎#colab顯示繁體中文,方法2 ☎程式碼
#--------------------------------------
# 課本的中文處理
#--------------------------------------
import matplotlib as mpl
import matplotlib.font_manager as fm

!wget "https://www.wfonts.com/download/data/2014/06/01/simhei/simhei.zip"
!unzip "simhei.zip"
!rm "simhei.zip"

fm.fontManager.addfont('SimHei.ttf')
mpl.rc('font', family='SimHei')
# 這一行能讓字體變得清晰
%config InlineBackend.figure_format = 'retina'
windows的spyder繪圖如何顯示中文 ☎解決:windows的spyder,會發生中文無法顯示的問題
參考:windows繪圖如何顯示中文
程式碼
#在windows 10 的spyder,繪圖如何顯示中文
#使用微軟正黑體(Microsoft JhengHei)
plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei']

#有些中文字體在碰到負號時,會無法正常顯示,尤其是內建的字體,加入以下語法就可以解決『負號無法顯示』問題
plt.rcParams['axes.unicode_minus'] = False
在colab如何更改目錄 ☎解決:在colab如何更改目錄的問題
程式碼
import os
os.chdir("/content/drive/MyDrive/Colab Notebooks")
!ls
解決簡體字csv造成亂碼 ☎解決簡體字csv,打開後都是亂碼的問題:

第2 種方式:
(1)先執行Excel 軟體,新增空白活頁簿,
(2)然後在上方功能選項中點選「資料」➜「取得外部資料」➜ 「從文字檔」 → 「選擇csv文件」,
選擇你的CSV 檔,
在「匯入字串精靈」對話框中選擇檔案原始格式65001:Unicode(UTF-8) 即可。

若是utf-8還是有亂碼,再改成
在「匯入字串精靈」對話框中選擇檔案原始格式54986:簡體中文(GB18080) 即可。

(3)打勾:我的資料有標題
(4)分隔符哈:逗號

程式模板 ☎存入excel檔案,並且畫柱狀圖
程式模板chp8-6.樞紐分析表的必要指令:展開 ☎輸出excel檔案:建立3個資料表sheet(英文成績,數學成績,中文成績)
打開chrome網頁線上英文字典功能 ☎如何安裝google chrome的網頁線上英文字典工具:
➜google chrome的右上角工具➜更多工具➜擴充功能
➜左上角主選單➜開啟chrome線上應用程式商店
➜勾選:google製作,免費
➜搜尋:google dictionary➜安裝
➜到chrome右上擴充功能➜點按google dictionary的『詳細資料』➜擴充功能選項
➜my language=chinese
➜打勾2個:Pop-up definitions:
(1)反白單字翻譯:Display pop-up when I double-click a word
(2)ctrl+拖曵整段翻譯: Display pop-up when I select a word or phrase

上課用excel 學生成績-chinese 學生成績-有缺值-chinese 學生成績-物理歷史-chinese 學生成績-amy-simon-chinese
學生成績-生日-chinese 學生成績-分組-chinese 人事資料-chinese 男女時薪-chinese
學生成績-english 學生成績-有缺值-english 學生成績-分組-english 圖書資料-chinese
上課用csv 小費tips-chinese 小費tips-english 學生成績-chinese 學生成績-english
圖書資料-chinese
上課用其它資料庫 mySQL-ch09 SQLite-student json-學生成績 xml-personnel
課本商業範例資料庫 商業銷售分析-sales csv 系所生源分析-excel 股市分析-台積電聯發科股票線型-excel 問卷資料分析-excel
進階課本資料庫(零售電子商務) 淘寶電商的營業數據-csv 3年驅蟲劑市場數據 3年滅鼠殺蟲劑細分市場數據 淘寶服飾店的流量數據-excel
進階課本資料庫(零售電子商務) 對手的單品SKU價格-excel 對手的單品價格-excel    
資料集dataset 小費資料集Tips Dataset(csv) kaggle小費資料集範例A Waiter's Tips example 【視覺化】小費(tips)資料集分析 小費(tips)資料集提取和檢視相應資料
資料集dataset 中山管院-公開資料集資源連結 台南市資料集    
如何準備應徵的CV履歷 可操作性超強的CV包裝,跨專業新手也能寫出資料分析經驗 一份令人心動的【學術簡歷】| An Excellent Academic CV 怎麼寫簡歷才能不被篩選軟體淘汰掉  
pandas參考教材 十分鐘入門 Pandas(英文) 十分鐘入門 Pandas(英文) 10分鐘的Pandas入門-繁中版 十分鐘入門 Pandas(中文)
pandas參考教材 pandas官網全部章節翻譯 pandas官網全部章節翻譯
pandas參考教材(英文) kaggle pandas教學 100 pandas tricks to save you time and energy 官網0.22.0:pandas documentation
pandas參考教材(中文) Pandas 101:資料分析的基石 資料科學家的pandas 實戰手冊:掌握40 個實用 簡明 Python Pandas 入門教學 資料分析必懂的Pandas DataFrame處理雙維度資料方法
pandas速查手冊 pandas 速查手册 - 盖若 Pandas速查手冊中文版 - 知乎專欄 Pandas速查手冊中文版- 騰訊雲開發者社區
pandas速查手冊 Pandas中DataFrame基本函數整理(全) Pandas 魔法筆記(1)-常用招式總覽 pandas的df的操作函數
SQL語法 SQL語法教程 pandas vs SQL
資料分析4大模組(runoob) numpy pandas matplotlib scipy
w3c、w3school、w3cschool、runoob、w3capi比較 runoob流量監控儀表板
w3school vs runoob 1.w3school中文版是直接google翻譯英文版
2.runoob.com翻譯自英文版w3schools,但重新排版
3.runoob = run + noob(菜鳥,小白)
4.runoob是python,html,javascript中文版最好的教學網
官網 python官網 vscode官網    
python 教學網站 python 3(官網手冊中文) python 3教學(中文) python 3教學(中文) 簡易1小時教學
w3school(英文版)      
線上執行python online

https://www.python.org/shell/(建議用這個)

https://repl.it/languages/python3


https://www.onlinegdb.com/online_python_compiler

https://www.tutorialspoint.com/execute_python_online.php

用Anacond寫python(*建議使用)

到Anacond官網下載安裝

作業(homework)
作業1 圖1 圖2 圖3
作業2
作業3
作業4
side project 1 第一個side project(可以放到你的履歷當做作品集)

題目:
這個是委託案,來自某私校大學系主任,因為招生日益困難,因而委託你:做學生來源落點的分析專案,
請你從各種角度來分析客戶群的潛在落點所在,探討逐年變化,並分析過去歷史的強項所在與弱項所在,
最後,請你寫個簡單的結案摘要,告訴業主,該如何做,才能改善招生率
side project 2 第二個side project(可以放到你的履歷當做作品集)

題目:
你是A公司的新進商業數據分析師,A公司今年2016年業績大幅下滑,公司想請你分析歷年數據後,寫份摘要報告,從各種不同角度分析,包括:『不同業務單位、不同業務員、不同產品、逐年、每季、每月』的分析,找出業績下降的原因,以及如何改善。
請多用定量描述的方式,來證明你分析觀點的可靠性、準確性與權威性,以建立個人數據分析的品牌與形象。

 
chp0.前言,與什麼是大數據
1.課程簡介投影片 2.學習程式的4種方法
1.現今企業的數據有哪些 2.運用數據三階段 3.資料生產的四步驟 3.資料最基本的三個概念
5.什麼是大數據Big Data 6.大數據分析與傳統商業分析的差異 7.大數據的分析步驟 8.視覺化常用工具
9.什麼是大數據Big Data 10.大數據分析與傳統商業分析的差異 11.大數據的分析步驟 12.大數據的類型:結構化、非結構化、半結構化資料

1.現今企業的數據有哪些

1.現今企業的數據有哪些:
(1)所謂大數據,即是透過不同來源、渠道取得的海量數據資料,
現今企業如果想做數據蒐集的方法變得非常多元,包括:

(2)來自用戶的第一方數據:
☎傳統的用戶資料建檔、問卷調查,
☎網頁的瀏覽行為等數據的追蹤,
☎App應用程式的瀏覽行為等數據的追蹤、
☎物聯網IoT設備傳遞的數據等,
這些都是可以蒐集到。

還有更多可捕捉用戶站外資訊的非第一方數據也漸漸被重視,
(3)透過交換共享得到的第二方數據:
☎第二方數據 (也稱為第二方或 2P 數據):是另一個同行公司收集的數據,但可由另一家公司通過購買或協作訪問。
☎營銷人員在希望擴展其營銷資料庫以吸引新的潛在客戶時,通常會購買它。
☎例如,如果一個為女性製作的服裝品牌決定增加一個男裝系列,並且需要相關的目標來行銷,就可以向外同行公司購買男裝的數據資料庫。

(4)任何與商業需求有關的第三方數據:
☎第三方數據 (也稱為第三方或3P數據):是來自第三方的數據,該第三方已聚合了多個數據源並使其可供購買。
☎第三方數據的缺點:是它可能缺乏準確性和品質,因此重要的是了解數據來自何處以及數據使用年限.

(5)比較:第一方、第二方和第三方數據之間的差別:
第一方、第二方和第三方數據之間的主要區別在於:『來源』。
☎第一方數據:由其『存儲/擁有的公司』收集。
☎第二方數據:由『同行公司』收集,並由另一家公司購買(或通過合作協定與他們共用)。
☎第三方數據:是從『多個未知來源』收集的,並由一家公司購買。


(6)參考文獻:
1.第一方、第二方、第三方和零數據對廣告商意味著什麼
2.分析大數據在各領域的應用

2.運用數據三階段

1.市場上的數據需求,主要分為四個階段:
☎數據蒐集、
☎數據分析、
☎數據應用

(1)數據蒐集:蒐集第一方、第二方和第三方數據

☎傳統的用戶資料建檔、問卷調查,
☎網頁的瀏覽行為等數據的追蹤,
☎App應用程式的瀏覽行為等數據的追蹤、
☎物聯網IoT設備傳遞的數據等,

☎第二方數據:向同行公司購買數據。

☎第三方數據:向『其他管道,如:數據收集公司』購買。


(2)數據分析:原始數據(raw data)要先處理過

☎透過多元渠道獲取大量數據資料往往是原始數據(raw data),無法直接使用,
☎必須經過一層又一層的處理過程
☎處理方法1:數據檢查(data inspecting)
☎處理方法2:數據清理(data cleansing)
☎處理方法3:數據轉換(data transforming)


(2-1)處理方法2:數據清理(data cleansing)
A.資料清理是資料前處理的第一步,需要先將資料中的問題處理。
B.收載資料時一定會遇到各式髒資料,有的資料樣態會導致無法轉入資料庫,而有的資料會在塞入資料庫時,出現錯位、亂碼等各式各樣非預期的情況,此時倉儲資料清理的準則變得極為重要,因將攸關於整個系統資料的統一。
C.資料清理的準則設定可以從三個角度著手:
☎「檔案類型」問題的清理
☎「欄位型態」問題的清理
☎「資料邏輯」問題的清理
D.☎數據清洗:按照一定的規則剔除或者填充不滿足實際需要的業務資料。
E.☎清洗主要包括三部分的內容:
第一部分是測試資料、
第二個是錯誤的資料,
第三個是缺失的資料。
錯誤的資料我們可以關注:『資料是否重複』、格式是否『錯誤、欄位描述』的資訊是否錯誤。





D.(2-1-a)例如:資料來源檔案類型:純文字檔
☎資料內容以純文字的方式儲存的特色:
欄位與欄位之間以特定符號作為分隔,
例如:逗號、分號或|等等,
☎較常被使用的是「逗號」

☎可能發生的問題:
然而使用各符號作為分隔時,會遇到其中一種情況是:以逗號為例,如該欄位內容包含逗號,將會造成欄位內容分割時發生錯誤,但此逗號明明屬於資料的內容,卻被誤認為是分隔符號,使得分割完的資料對應到錯誤的欄位

☎解決的辦法:
將內容值前後都加上雙引號後,再以逗號分隔串連各欄位資料


D.(2-1-a)例如:檔案類型:資料庫
☎讀取資料庫文字欄位型態的資料時,內容包含換行符號,系統就認為這筆資料已經讀取完,則換行符號後面的資料內容即為下一筆資料的開頭,無法完整的將一筆資料讀取進來。
☎解決辦法:是移除換行符號,若需要保留換行符號,


D.(2-1-b)例如:欄位型態:日期
☎格式:同時出現以 斜線分隔(YYYY/MM/DD)、無分隔符號(YYYYMMDD) 或 連接號(YYYY-MM-DD) 的日期格式。
☎處理方式:透過判斷式將內容使用的符號,或沒有符號的純文字格式,換成資料庫可接受的日期格式。

☎西元年/民國年:同一欄位參雜西元年與民國年的日期。
☎處理方式:若以西元年格式存入資料庫,年若小於1911,則將 年份+1911 ;年若大於1911,則直接轉入。

☎值異常:例如日期出現2月30日、年份早於1911年等,或是不可為NULL的欄位卻出現NULL值等非正常的日期。
☎處理方式:異常的日期通常已經無法追溯到正確的值,或來源的日期就是髒資料,可統一為特定日期(如:1911年1月1日),日後看到即可確定來源的資料因有異常而清理過。


D.(2-1-b)例如:欄位型態:特殊字元
☎說明:文字是最容易造成轉檔失敗的型態,因為此型態可容許輸入任何類型的字元,例如:特殊字元,但資料庫本身並非接納的了所有字元,較特別的會無法轉入,或需要做其他特殊的轉換才能收載。
☎處理方式:必須找出那一筆,替換掉『特殊字元』後,再登錄進資料庫。


D.(2-1-c)例如:資料邏輯:縣市代碼
☎台灣曾經經歷過縣市升格為直轄市,有更換過縣市的中文名稱,那麼資料也須跟著配合調整。
☎處理方式:是做一張新舊對照縣市代碼與名稱的轉換表,日後資料若有縣市資訊需求,即可勾稽此資料表,讓縣市升格前與後的資料,能自由並適當的轉換,得到想要的資訊。


D.(2-1-c)例如:資料邏輯:身分證號的規則判斷
☎身分證號的編碼有固定的規則,
第一碼是初次戶籍所在的縣市代碼,
第二碼是性別(1:男性;2:女性),
第三到九碼是流水碼,
最後一碼第十碼是檢查碼,檢查碼會以第一到第九碼之英數字組合經過權重計算而得。
☎若要確認身分證是否有效,可依據這些規則去做判斷。


(2-3)處理方法3:數據轉換(data transforming)
A.☎數據轉化:按照一定的規則、技術手段轉化不同格式,或者顆粒度不同的資料。
B.(1)例如:格式的轉換,比如說時間格式,在不同的業務系統可能會有不同的時間格式,但是到我們大資料系統,為了方便下游資料的使用,我們會統一轉換成一種資料格式。包括一些欄位編碼也是這樣。
C.(2)資料顆粒度的轉換:我們在DW層的資料明細層到資料應用層的整個過程,都是顆粒度不斷轉化的一個過程。還包括一些業務規則、商務規則和一些指標。


☎補充:數據顆粒度:資料顆粒度指數據的細緻程度。
資料顆粒度越高,細緻程度越高,意味著可以進行更準確的分析。
然而,需要指出的是,資料顆粒度直接決定資料庫需要的儲存空間。
高顆粒度的資料需要更多儲存空間;如果資料顆粒度太高,能夠識別出背後的資料,隱私相關挑戰也會加大。

(4)參考文獻:
1.資料指標體系(1)如何理解資料顆粒度、維度以及指標

3.資料生產的四步驟

1.資料生產的四步驟:
• 資料指標體系搭建
• 資料獲取
• 資料存儲
• 數據清洗

2.建立資料後,即可開始資料分析

4.資料最基本的三個概念

1.資料最基本的三個概念:
☎顆粒度
☎維度
☎指標

(1)顆粒度
☎資料的顆粒度是指數據的 “粗細”,也就是我們看資料的視野的大小,或者說格局的大小。
☎例如:
一個電商公司,同樣是看GMV(總銷售額),CEO關注的可能是『今年總的GMV』是多少,
而業務老闆關注的可能是『每月的GMV』如何,
具體到某個小團隊,關注的點可能就是某些商品,『每天的GMV』如何了。

☎資料顆粒度最常見的劃分是:時間


(2)維度
☎資料的維度:是指看待事物不同的角度。
☎是從不同角度來看一件事,會得到不同的結論。
☎在做資料分析時也是一樣的。分析一個活動,或者一個策略對用戶的吸引時,如果我們以『新增用戶數』作為分析的指標(也就是展開方式,分析點),

☎可以列為『維度』進行拆分的項目:
• 時間維度:拆分為早晨、中午、晚上
• 性別維度:男性、女性、未知
• 受教育程度:小學、中學、大學、研究生、博士
☎通過維度的分解,我們可以看到每個部分的變動,和整體的變化趨勢是否相同,是否存在不同,而哪些不同點往往會成為我們接下來分析的重點。

☎顆粒度和維度的『相似性』:例如“時間”這個要素,在兩個部分都出現了
☎顆粒度和維度的『差異性』:不同在於拆分的方式不同
• 顆粒度:是一種縱向的聚合,類似於金字塔的形狀,不同的顆粒度都代表著不同的聚合程度
• 維度:是一種橫向拆分的模式。類似于把鏡子打碎成不同的部分,每個部分都是獨立的,把所有部分合在一起又能拼成完整的整體


(2-1)指標
☎資料指標:是衡量事物發展方式及程度的一種單位或者方法,一般通過對原始資料進行加減乘除等操作生成得到。
☎例如:長度,是把所有部分加在一起得到的一種衡量外在大小的單位。

☎列舉一些常見網路流量的資料指標:
• DAU(daily active user):每天,“活躍”過的用戶數的加總,count(distinct user_id) group by day
• MAU(monthly active user):每個月,“活躍”過的用戶的加總,count(distinct user_id) group by month
• 留存率(次日、7日、30日):今天“活躍”過的用戶的總量,一段時間後的某個時間點,還活躍的比例
• 轉化率:兩個有遞進的環節之間,從上層到下層用戶轉化的比例,例如:CTR=實際點擊次數/展示量



(4)參考文獻:
1.大數據前的資料清理
2.分析大數據在各領域的應用

5.什麼是大數據Big Data

1.為什麼有大數據的問題
現在的企業資料,因為以下的興起,造成大量數據的需求: ☎網路網路資料(社交網站,交易資料)
☎物聯網IoT, Internet of Things
☎感測器sensor


2.大資料的來源
資料來源主要分為以下三類:
(1)社交數據:
☎顧名思義,社交資料來源於社交媒體評論、發帖、圖片以及與日俱增的視頻檔。隨著全球 4G 和 5G 蜂窩網路的普及,到 2023 年,全球手機視頻使用者將增至 27.2 億。
☎雖然社交媒體及其使用趨勢瞬息萬變、難以預測,但作為數位資料的主要來源,其穩定增長趨勢是不會改變的。

(2)機器數據:
☎物聯網設備和機器都配有感測器,能夠發送和接收數位資料。物聯網感測器能夠幫助企業採集和處理來自整個企業的設備、工具和裝置的機器資料。
☎從天氣和交通感測器到安全監控,全球範圍內的資料生成設備正在迅速增多。
☎據 IDC 估計,到 2025 年,全球物聯網設備數量將超過 400 億,生成的資料量幾乎占全球數位資料總量的一半。

(3)交易資料:
☎交易資料是世界上發展速度和增長速度最快的資料。
☎例如,一家大型國際零售商每小時處理超過 100 萬筆客戶交易,全球那麼多採購和銀行交易,生成的資料量會有多麼驚人。
☎此外,交易資料越來越多地由『半結構化』資料組成,包括圖片和注釋等,使得管理和處理難度不斷增加。



3.大數據的五大特性:

(1)大數據的3V特性: ☎資料量(Volume)
☎資料類型(Variety)。
☎資料傳輸速度(Velocity)

☎Volume(資料量) 無論是天文學、生物醫療、金融、聯網物間連線、社群互動…每分每秒都正在生成龐大的數據量,如同上述所說的 TB、PB、EB 規模單位。

☎Variety(資料多元性)
真正困難的問題在於分析多樣化的資料:從文字、位置、語音、影像、圖片、交易數據、類比訊號… 等結構化與非結構化包羅萬象的資料,彼此間能進行交互分析、尋找數據間的關聯性。

☎Velocity(資料即時性)
大數據亦強調資料的時效性。隨著使用者每秒都在產生大量的數據回饋,過去三五年的資料已毫無用處。
一旦資料串流到運算伺服器,企業便須立即進行分析、即時得到結果並立即做出反應修正,才能發揮資料的最大價值。


(2)大數據的4V特性:
☎資料量(Volume)
☎資料類型(Variety)
☎資料傳輸速度(Velocity)
☎資料真實性(Veracity)
在3V成為大數據的主要定義後,隨著儲存資料的成本下降、取得成本也下降,大數據發展出第四個特性:Veracity,意旨除了資料量,也需要確認資料的真實性,過濾掉造假的數據與異常值後,分析出來的結果才能達到準確預測的目的。



(3)大數據的5V特性:
☎資料量(Volume)
☎資料類型(Variety)
☎資料傳輸速度(Velocity)
☎資料真實性(Veracity)
☎價值(Value)
大量、快速取得,來源多樣的資料,經過真實性考驗之後,擁有一定的價值,是大數據的核心架構




4.多大的資料量才算大數據Big Data
☎資料量要多大才能說是大數據?
根據維基百科的定義,資料大小從幾TB(Terabyte)到幾PB(Petabyte)不等




5參考文獻:
(1).什麼是大數據
(2).巨量資料(wiki)
(3).大數據到底是什麼意思?事實上,它是一種精神
(4).認識大數據定義、分析與工具
(5).大數據,不只是很大的數據

6.大數據分析與傳統商業分析的差異

1.大數據分析與傳統商業分析的差異

(1)大數據分析:
☎分析方法:使用原始資料➜統計分析➜產生視覺化圖表➜產生報表
☎使用技術:原始資料,大數據,使用程式碼(python/R)進行結構化分析
☎預測方法:找出數據間的關聯性➜建立預測模型➜完成預測

2.參考文獻:
(1).大數據,不只是很大的數據

7.大數據的分析步驟

1.大數據的分析步驟:取得,儲存,運算,視覺化

☎大數據分析第一步:取得
數據隨時隨地都在產生,就連你上班時的行走路線,都可以成為商家選擇新店地址的參考資料。若是擁有大量使用者的企業,蒐集使用者的活動紀錄就可達到以數據預測未來的目標;若是較小型的企業,則可主動邀請使用者填寫問卷,逐步累積資訊量。

☎大數據分析第二步:儲存
由於資料量龐大,突破儲存技術式處理大數據的第一個難關。因此處理大數據時多使用分散式處理系統,透過分割資料與備份儲存,突破記憶體過小的障礙。

☎大數據分析第三步:運算
為達成預測未來的目的,機器可以透過分類、迴歸分析、排序、關聯分析等方式找出其中規律,並運用決策樹、遺傳演算法、人工神經網路等模型進行計算。

☎大數據分析第四步:視覺化
經過分析後的數據仍是數字與列表,不易閱讀。因此可搭配視覺化工具,將數據轉化為較容易閱讀與理解的形式。

2.參考文獻:
(1).認識大數據定義、分析與工具

8.視覺化常用工具

1.三大視覺化工具:Power BI,Tableau,Data Studio
功能:都能夠製作Dashboard(互動儀表板,報表平台)


(1)Power BI:微軟Microsoft
(1-1)費用:
☎免費版:若要編輯或瀏覽 Power BI Dashboard 僅能確保每個使用者都有在桌面下載 Power BI。
但免費PC版 Power BI 僅能在 Windows 上使用,
Mac 使用者僅能夠過網頁/付費方式使用
☎付費版:Power BI 可透過企業全體購買 Pro License(每個月300元),進而能夠做到網頁版共用。

☎付費版:公司內可以購買整個 Office 365 package(已經包含 Power BI Pro License),以利內部資料互通,大家也不用另外在電腦下載應用程式,直接網路編輯與瀏覽即可,Mac 使用者也能進而編輯
☎付費版:Power BI Premium,每月每個人600元。
Power BI定價參考網址

(1-2)功能:
Power BI 基本上功能與Tableau大同小異。
Power BI的操作比較簡單,更直覺化(Tableau操作較複雜)。
Power BI同時可支援 Python & R 的視覺化工具,
Power BI 的 DAX 語法相較 Tableau 好懂。


(2)Tableau
(2-1)費用:
☎Tableau Public 是一個免費的平台
☎Tableau Prep 免費試用30天
☎Tableau Desktop 免費試用14天
☎Tableau Server 免費試用
☎CRM Analytics(原稱 Tableau CRM)
認識大數據定義、分析與工具
☎Tableau 在企業級規模部署時Power BI比較便宜,因為雖然Power BI 隨附於O365中,但若要企業級部署,考慮Power BI Pro與Power BI Premium 間的功能差距,若真的要能做到 Tableau Server 大部分的功能,是一定需要 Premium 的,不然會受到算力、數據量大小、協作功能等的差距影響,很難做到企業級部署。
而Power BI Premium 在2021/02時所記錄的起始報價為 台幣 150,120。
Tableau的產品生態:


(2-2)功能:
☎功能強大。
☎2020/01年時統計,世界500強企業裡面96%是Tableau的客戶。


(3)Data Studio
(3-1)費用:
☎google雲端軟體,完全免費的平台

(3-2)功能:
☎優點:因為 Google 產品大多都是可開權限共享,
所以要結合Google 其他應用程式(Big Query, Google Analytics),就可以直接串接到 Data Studio,因為便利而使用它。
☎優點:雲端使用,是目前線上最流暢的(因為google產品都是雲端產品),而且可以共同編輯
☎缺點:功能性而言,現在 Data Studio 在細節調整上還是略輸 Power BI 與 Tableau 一些


2.BI(Business Intelligence,商業智慧)市場分成2類:
(1)自助式分析組別:
組織裡面每個人都有能力利用此組別內的BI工具連接數據與探索數據,發表屬於自己的數據見解
例如:Power BI,Tableau,Data Studio

(2)報表組別:
大部份情況之下,因需要撰寫大量函式或需要寫SQL,需要由統一專業部門開發,如IT單位
例如:Finereport,Microstrategy



3.參考文獻:
(1).Tableau 與 Power BI 完整比較指南
(4).Tableau VS. PowerBI

9.大數據的類型:結構化、非結構化、半結構化資料

1.大數據的類型:結構化、非結構化、半結構化資料




(1)結構化資料:這類資料最容易整理和搜索,
☎主要包括:財務資料、機器日誌、人口統計明細等。
結構化資料很好理解,類似於 Excel 試算表中預定義的行列佈局。
這種結構下的資料很容易分門別類,資料庫設計人員和管理員只需要定義簡單的演算法就能實現搜索和分析。
不過,即使結構化資料數量非常大,也不一定稱得上大資料,因為結構化資料本身比較易於管理,不符合大資料的定義標準。
一直以來,資料庫都是使用 SQL 程式設計語言管理結構化資料。
SQL 是由 IBM 在 20 世紀 70 年代開發的。

(2)非結構化資料:
☎因為web2.0盛行後產生很多非結構資料。
☎(web 2.0內容:透過網路應用,以使用者為中心,促進網路上人與人間的資訊交換和協同合作)
☎(web 2.0範例:網路社群、網路應用程式、社群網站、部落格、Wiki)
☎資料包括:社交媒體內容、音訊檔、圖片、開放式客戶評論等。
☎這些資料符合大數據定義中:『大而複雜』的要求,也因此這些資料通常很難用標準的行列關係型數據庫捕獲。
大多數情況下企業若想搜索、管理或分析大量非結構化資料,只能依靠繁瑣的手動流程。
毫無疑問,分析和理解這類資料能夠為企業帶來價值,但是執行成本往往太過高昂。而且,由於耗時太長。
但是因為無法存儲在試算表或關係型數據庫中,所以非結構化資料通常存儲在資料湖、資料倉庫和 NoSQL 資料庫中。

(3)半結構化資料:
☎半結構化資料是結構化資料和非結構化資料的混合體。
☎例如:電子郵件,
因為其中的正文:屬於非結構化資料,
而寄件者、收件人、主題和日期:屬於結構化資料。
使用地理標記、時間戳記或語義標記的設備也可以同時提供結構化資料和非結構化內容。


3.參考文獻:
(1).什麼是大數據
(2).web 2.0
(4).Tableau VS. PowerBI

 

 
chp1.安裝與使用python的四種方法
1.使用python的四種方法 2.Anaconda下載點 3.安裝anaconda 4.Anaconda cmd指令
5.建立Anaconda虛擬環境 6.使用Spyter編譯器 7.網頁版python編輯器jupyter notebook 8.其它線上雲端可編譯的python平台

1.前言

Python堪稱是大數據與AI時代的最重要程式語言,在資料處理上有著非常重要的地位。而隨著AI的興起,讓傳統的零售業、金融業、製造業、旅遊業,以及政府都爭相投入,無不希望能運用數據分析與預測來協助決策方向,也讓新興的數據分析師、資料分析師成為熱門職業,因此本課程將講解如何使用網絡爬蟲技術以掌握資料爬取分析、視覺化呈現,以及儲存交換應用的關鍵技術。

Python資料處理的三大技術分別是:擷取分析、視覺化呈現與儲存應用。
而其應用的範疇包括:網路爬蟲、資料正規化、資料視覺化、資料儲存與讀取(CSV、Excel、Google試算表、SQLite、MySQL)、批次檔案下載、公開資料應用、API建立、驗證碼辨識。

Python大數據分析最重要的四個模組

1.Python大數據分析最重要的四個模組
Python資料分析最重要的四個模組:pandas、numpy、scipy、matplotlib。

(1)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』
也就是pandas的DataFrame資料結構,可以與它們之間互相簡易的存取。
然後再根據DataFrame來進行想要的大數據分析,它提供內建的演算法與資料結構,能夠用一個指令,就可以進行二維資料的『排序,篩選,關鍵字查詢,任意區間範圍查詢,統計學計算,平均值,變異數,標準差,字串檢索,字串取代,欄位樞紐分析、小記、欄位加總,把二維資料任意方式圖形視覺化顯示』
而建立pandas的DataFrame資料結構,有兩種方式,可以用column的方式來輸入資料,也可以用row的方式來輸入資料。
所以pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。

(2)Numpy: Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
Numpy是Python進行專業的數值計算之重要模組,因為大多數提供科學計算的包都是用numPy的陣列作為構建基礎,因此在進行高等數學計算時,numpy就是大數據分析的最重要工具了,因為高等數學運算,都是以矩陣的方式來進行運算,例如人工智慧,機器學習,深度學習,類神經網路計算等。

(3)sscipy:是基於numpy的科學計算包,包括統計、線性代數等工具。

(4)matplotlib:是最流行的用於繪製資料圖表的 Python 庫
也可以結合pandas模組來繪圖。

2.執行python的四種方法

1.要編寫python有三種的方法:
一、方法1:安裝python單純的python
缺點:功能陽春,沒有太多的模組,無法馬上寫大數據分析程式。
安裝網址:python官網下載

二、方法2:安裝Anaconda
優點:會同時安裝python、1000多種數學繪圖模組、Spyder編輯器,能夠支援大數據分析。
缺點:會安裝了很多你用不到的模組,浪費硬碟空間。
安裝網址:到Anacond官網下載安裝

三、方法3:使用python官網線上shell
使用repl線上python

四、方法4:使用google雲端硬碟的雲端軟體:Cola,colaboratory
優點:Google 的 Colab 是一個讓你用網頁瀏覽器就能寫 Python 程式、並且執行的平台。
優點:Colab 提供免費的 GPU 讓你高效運算機器學習與深度學習演算法。
優點:Google Colab 預先幫你安裝好大家最常用的 Python 套件,幫你解決了一半以上的煩惱,讓 Python 新手可以不用在剛起步就學習環境部署的麻煩事。數據分析常用的 Pandas 與 Numpy、資料視覺化好用的 Seaborn 與 Matplotlib、還有機器學習必備的 xgboost 或 Tensorflow,這些都是 Colab 預先安裝好的套件。
不需要再自行安裝套件:(Terminal)輸入 pip install
優點:可以從 Google Drive 取得你要用的檔案、然後透過 Python 程式讀取;
優點:可以與google其它軟體整合,例如:也可以匯入 Google Sheet 的表格資料,然後用你最愛的視覺化套件(例如 Matplotlib)畫出美麗的圖表。
優點:Colab 其中一個厲害的地方就是,你除了可以執行 Python、也能執行 Command Line,只要在 Command Line 指令加上驚嘆號就能做到,像是 !mkdir。你可以在 Colab 裡 Python 程式碼寫到一半的時候,突然加進幾行 Command Line 來操作檔案,完成後,再讓 Python 程式碼接著寫下去,Python 與 Command Line 可以無痛切換。
優點:%%timeit:算出你的程式碼區塊花多少時間執行,分析你的演算法效率時很好用。
優點:%run my_script.py:執行你的另一個 Python 程式,如果你的程式還需要呼叫另一個程式,就需要使用。


3.Anaconda下載點

Anacond官網


3.安裝anaconda 3.安裝anaconda
功能:原始的python功能太陽春,若下載anaconda,則可以提供300多種的科學數學模組,可以提供大數據資料分析
(1)Anaconda是一個免費的Python和R語言的發行版本,用於計算科學(資料科學、機器學習、巨量資料處理和預測分析)
(2)因為Anaconda有很多的數據分析模組,所以大數據分析會使用到的『pandas、Numpy、Scipy』python package套件,在anaconda安裝完成時就已經包含在裡面了。
(3)Anaconda中文是森蚺(大蟒蛇)。
1)可以把Anaconda當作是Python的懶人包,除了Python本身(python2, 3) 還包含了Python常用的資料分析、機器學習、視覺化的套件
2).完全開源和免費
3).額外的加速、優化是收費的,但對於學術用途可以申請免費的 License
4).全平台支持:Linux、Windows、Mac
5).支持 Python 2.6、2.7、3.3、3.4,可自由切換,
6).內帶spyder 編譯器(還不錯的spyder編譯器)
7).自帶jupyter notebook 環境 (就是網頁版的python編輯器,副檔名為IPthon)

(4)常用套件:

Numpy: Python做多維陣列(矩陣)運算時的必備套件,比起Python內建的list,Numpy的array有極快的運算速度優勢
Pandas:有了Pandas可以讓Python很容易做到幾乎所有Excel的功能了,像是樞紐分析表、小記、欄位加總、篩選
Matplotlib:基本的視覺化工具,可以畫長條圖、折線圖等等…
Seaborn:另一個知名的視覺化工具,畫起來比matplotlib好看
SciKit-Learn: Python 關於機器學習的model基本上都在這個套件,像是SVM, Random Forest…
Notebook(Jupyter notebook): 一個輕量級web-base 寫Python的工具,在資料分析這個領域很熱門,雖然功能沒有比Pycharm, Spyder這些專業的IDE強大,但只要code小於500行,用Jupyter寫非常方便,Jupyter也開始慢慢支援一些Multi cursor的功能了,可以讓你一次改許多的變數名稱
(5)優點:省時:一鍵安裝完90%會用到的Python套件,剩下的再用pip install個別去安裝即可
(6)缺點:占空間:包含了一堆用不到的Python的套件(可安裝另一種miniconda)

(7)下載網址:https://www.anaconda.com/
選擇個人版:indivisual
https://www.anaconda.com/products/individual
→Download
→Windows
Python 3.7(會自動幫你安裝Python 3.7)
64-Bit Graphical Installer (466 MB)
32-Bit Graphical Installer (423 MB)

(8)安裝過程,要勾選
不勾選:add the anaconda to the system PATH(但是2020年,ananconda不建議勾選這個,容易發生錯誤)
勾選:Register anaconda as system Python 3.7

(9)安裝結束
→在windows開始→anaconda有6個項目,最常用的有3個
(1)anaconda prompt:可以直接下cmd指令
(2)Spyter:編譯器(還不錯的spyder編譯器)
(3)jupyter notebook(網頁版的python編輯器,副檔名為IPthon)
4.Anaconda prompt:cmd指令 4.使用anaconda prompt:直接下cmd指令
注意:windows 10 必須使用管理員來執行(點選anaconda prompt→滑鼠右鍵→以系統管理員身份進行)
(1)列出目前已經安裝的anaconda的模組與版本:
conda list

(2)對某個模組更新安裝
conda update 模組
範例:conda update ipython

(3)安裝某個模組
方法1:conda install 模組
範例:conda install numpy

# 安裝 NumPy 1.15 以後、 1.16 以前
conda install 'numpy>=1.15,<1.16'

方法2:pip install 模組
範例:pip install numpy

(4)解除安裝某個模組
方法1:conda uninstall 模組
範例:conda uninstall numpy

方法2:輸入 conda remove PACKAGE_NAME可以從目前的工作環境移除指定套件。
# 移除 NumPy
conda remove numpy numpy-base

方法3:pip uninstall 模組
範例:pip uninstall numpy

(5)在anaconda prompt執行python程式
方法1:
先到工作目錄:cd ch1
執行.py程式:python test1.py

方法2:python c:\chp1\test1.py

(6)常用指令
conda --version 檢視 conda 版本
conda update PACKAGE_NAME更新指定套件
conda --help 檢視 conda 指令說明文件
conda list --ENVIRONMENT 檢視指定工作環境安裝的套件清單
conda install PACAKGE_NAME=MAJOR.MINOR.PATCH 在目前的工作環境安裝指定套件
conda remove PACKAGE_NAME 在目前的工作環境移除指定套件
conda create --name ENVIRONMENT python=MAIN.MINOR.PATCH 建立新的工作環境且安裝指定 Python 版本
conda activate ENVIRONMENT 切換至指定工作環境
conda deactivate 回到 base 工作環境
conda env export --name ENVIRONMENT --file ENVIRONMENT.yml 將指定工作環境之設定匯出為 .yml 檔藉此複製且重現工作環境
conda remove --name ENVIRONMENT --all 移除指定工作環境
使用 conda list | grep numpy 檢查 Python 套件清單中是否還有 NumPy 套件
輸入 conda search PACKAGE_NAME可以檢視指定套件在 conda 中可安裝的版本列表。
# 檢視 NumPy 在 conda 中可安裝的版本
conda search numpy=1.16.3
5.用Anaconda prompt來建立虛擬環境 5.使用Anaconda prompt來建立虛擬環境
功能:可以建立多個Anaconda虛擬環境
例如:目前安裝後預設是python 3.x版本的環境,若要創建一個python 2.x的環境,就可以在Anaconda虛擬環境實現
(1)# 檢視電腦中可使用與目前所在的工作環境
conda env list

(2)使用 conda create --name ENVIRONMENT python=MAIN.MINOR.PATCH 指令可以建立出乾淨、極簡且資源隔絕的工作環境。
指令:conda create -n 虛擬環境名稱 python=版本 anaconda

# 建立一個名稱為 demo 的 Python 2 工作環境
conda create --name demo python=2
範例:建立py27env環境
conda create -n py27env python=2.7 anaconda

(3)輸入 conda activate ENVIRONMENT 可以啟動指定工作環境、
方法1:conda activate ENVIRONMENT
方法2:activate ENVIRONMENT
範例:activate py27env

方法3:到windows→開始→點選Anaconda prompt(py27env)

(4)關閉虛擬目錄,回到原本pytohn環境(base)
使用 conda deactivate 則是切換回預設的 base 工作環境。
方法1:conda deactivate
方法2:deactivate

(5)# 檢視 demo 工作環境中的套件
conda list -n py27env

(5)範例 A.建立py27env虛擬環境
conda create -n py27env python=2.7 anaconda
B.切換到py27env虛擬環境
activate py27env
C.檢視 demo 工作環境中的套件
conda list -n py27env
D.# 檢視 Python 版本
python --version
E.關閉虛擬目錄,回到原本pytohn環境(base)
deactivate

(5)複製一個與目前pyhon環境(或是py27env) 完全相同的工作環境
conda create -n 新虛擬環境名稱 --clone root
範例:conda create -n py27env2 --clone root

# 檢查明確所有虛擬環境名稱
conda info -e

(6)移除某個虛擬環境
conda remove -n 虛擬環境名稱 --all
範例:conda remove -n py27env --all

(7)常用指令整理
安裝:conda install
更新:conda update
移除:conda remove

在工作環境管理透過
創建:conda create
啟動:conda activate
停止:conda deactivate
匯出設定檔:conda env export
移除:conda remove
6.使用Spyter編譯器 6.使用Spyter:編譯器
(1)新增一個py檔案
File→ New file

print("你好,歡迎光臨")
print(1+1)

Run➤

(2)開啟已經存在的檔案
方法1:File→ Open
方法2:拖曵檔案總管的py檔案到Spyder

(3)在Spyter使用簡易智慧輸入
方法:按『tab』
範例:
先輸入p
然後按『tab』
出現list清單,都是p開始的指令

(4)程式除錯
方法1:若是這一行有指令寫錯,就會在最左邊出現三角形▲警告icon
方法2:在這個一行最左邊double click,就會出現中斷點(或是這一行按F12)
7.jupyter notebook網頁版的python編輯器 7.jupyter notebook
(1)功能:是網頁版的python編輯器,副檔名為IPthon
會開啟瀏覽器:http://localhost:8888/tree
對應的硬碟目錄 = C:\Users\電腦名稱
(例如: C:\Users\user)

(2)練習線上編輯一個簡單python程式
A.右方→New→Python3
在cell裡面輸入In[1]
a = ("apple","grape","banana")
print(a[2])

B.Run

C.修改檔案名稱→Untitled→exp1-3

D.查詢雲端檔案放置位置:C:\Users\電腦名稱\exp1-3.ipynb

(3)二種不同的Run方式
A.Run:會新增一個new cell
B.Ctrl+Enter:會停留在原本的cell

(4)在jupyter notebook使用簡易智慧輸入
方法:按『tab』
範例:
先輸入p
然後按『tab』
出現list清單,都是p開始的指令

(5)在jupyter notebook編輯的檔案無法讓python IDE編譯
jupyter notebook編輯的檔案是.ipynb
與python的.py不同
改善方法:只能把程式碼複製貼上,在兩個平台交流
8.其它線上雲端可編譯的python平台 8.其它線上雲端可編譯的python平台
網站:http://rep.it/languages/python3
 

 
chp2.Pandas與數據分析
2-1.Python大數據分析最重要的四個模組:pandas,matplotlib,numpy,scipy 2-2.Pandas介紹 2-3.Pandas安裝 2-4.Pandas的資料結構
Pandas速查手冊 2-1-Pandas速查手冊
上課參考教材 用Pandas掌握商務大數據分析 pandas官網(英文) w3schools的pandas教學(英文) runoob的pandas菜鳥教程(中文)
pandas參考教材 w3Cschool的pandas教學(中文) Steam教學網-python 蓋若pandas 教程 pandas的df的操作函數
pandas參考教材 十分鐘入門 Pandas(英文) 十分鐘入門 Pandas(英文) 10分鐘的Pandas入門-繁中版 十分鐘入門 Pandas(中文)
pandas參考教材 pandas官網全部章節翻譯 pandas官網全部章節翻譯
pandas參考教材(英文) kaggle pandas教學 100 pandas tricks to save you time and energy 官網0.22.0:pandas documentation
pandas參考教材(中文) Pandas 101:資料分析的基石 資料科學家的pandas 實戰手冊:掌握40 個實用 簡明 Python Pandas 入門教學 資料分析必懂的Pandas DataFrame處理雙維度資料方法
pandas速查手冊 pandas 速查手册 - 盖若 Pandas速查手冊中文版 - 知乎專欄 Pandas速查手冊中文版- 騰訊雲開發者社區
pandas速查手冊 Pandas中DataFrame基本函數整理(全) Pandas 魔法筆記(1)-常用招式總覽
資料集dataset kaggle小費資料集範例A Waiter's Tips example 【視覺化】小費(tips)資料集分析 小費(tips)資料集提取和檢視相應資料 小費資料集Tips Dataset(csv)
資料集dataset Kaggle的星巴克滿意度調查資料集( 中文解析:Kaggle星巴克滿意度調查
SQL語法 SQL語法教程 pandas vs SQL 如何在Pandas裡寫SQL查詢語句
資料分析4大模組(runoob) numpy pandas matplotlib scipy
資料分析四大模組

1.Python大數據分析最重要的四個模組
Python資料分析最重要的四個模組:pandas、numpy、scipy、matplotlib。

(1)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』
也就是pandas的DataFrame資料結構,可以與它們之間互相簡易的存取。
然後再根據DataFrame來進行想要的大數據分析,它提供內建的演算法與資料結構,能夠用一個指令,就可以進行二維資料的『排序,篩選,關鍵字查詢,任意區間範圍查詢,統計學計算,平均值,變異數,標準差,字串檢索,字串取代,欄位樞紐分析、小記、欄位加總,把二維資料任意方式圖形視覺化顯示』
而建立pandas的DataFrame資料結構,有兩種方式,可以用column的方式來輸入資料,也可以用row的方式來輸入資料。
所以pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。

(2)Numpy: Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
Numpy是Python進行專業的數值計算之重要模組,因為大多數提供科學計算的包都是用numPy的陣列作為構建基礎,因此在進行高等數學計算時,numpy就是大數據分析的最重要工具了,因為高等數學運算,都是以矩陣的方式來進行運算,例如人工智慧,機器學習,深度學習,類神經網路計算等。

(3)sscipy:是基於numpy的科學計算包,包括統計、線性代數等工具。

(4)matplotlib:是最流行的用於繪製資料圖表的 Python 庫
也可以結合pandas模組來繪圖。

Pandas介紹

2-2.Pandas介紹:
特色:
(1)pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。
(1)Pandas是python的一個數據分析模組,2009 年底被開發出來。
(2)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。

(3)pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。

(4)提供高效能、簡易使用的資料格式(Data Frame)讓使用者可以快速操作及分析資料,

(5)Pandas強化了資料處理的方便性也能與處理網頁資料與資料庫資料等,有點類似於Office的Excel, 能更加方便的進行運算、分析等.
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』

(6)建立pandas的DataFrame資料結構,有兩種方式:
可以用column的方式來輸入資料,
也可以用row的方式來輸入資料。

(8) Pandas 是一個 Python 用來資料處理的工具,可以讀取各種檔案轉成欄列式資料格式,進而過濾或是進行資料前處理(將資料整理好方便後續資料分析使用)

(9)方便簡單的異質數據讀取、轉換和處理。
(10)提供兩種主要的資料結構:
Series用來處理時間序列相關的資料,是個擁有標籤的一維陣列;
DataFrame則是用來處理像表格一樣的二維的資料,並且可以隨意更改結構和任意欄位的資料型態。

(11)資料載入Pandas的資料結構物件後,可以提供的方法,統一進行資料處理,如合併、補值,過濾或取代等等。

(12)多輸入來源及多輸出整合,例如:可以從資料庫讀取資料進行處理後,可以輸出到資料庫或檔案等等。

Pandas安裝

2-3.Pandas安裝:

1. 若使用Anaconda:(Anaconda預設沒有安裝pandas):
安裝方法:
(1)Anaconda Prompt 或 Terminal 終端機下安裝
指令:pip install pandas

(2)若使用 Jupyter Notebook 安裝套件,需使用以下語法安裝:
指令:!pip install pandas


2. 若使用google雲端硬碟的雲端軟體:Cola,colaboratory:
colaboratory預設已經安裝pandas了。可以直接使用

Pandas的資料結構

2-4.Pandas的資料結構:

1. Pandas提供以下三種資料結構供使用:
(1)Series:用來處理時間序列相關的資料(如感測器資料等),
主要為建立索引的一維陣列。

(2)DataFrame:用來處理結構化(Table like)的資料,
有列索引與欄標籤的二維資料集,例如關聯式資料庫、CSV 等等。

(3)Panel:用來處理有資料及索引、列索引與欄標籤的三維資料集(除了特殊需求之外少使用… 略過)。


2.建立一維的(Series):
(1)一維的資料,就像列表List

(2)範例:建立Series物件
import pandas as pd
s = pd.Series([13, 30, 77, 6, 111, 10])

(3)Series就像一維陣列一樣(list),預設索引值從0開始。
dtype表示Series內資料型態為int64。

3.建立二維的DataFrame
(1)DataFrame結構為一個表格,類似微軟Excel或蘋果Numbers試算表:

(2)每個欄位內的資料型態是固定的。
不同欄位資料型態可以不同。

(3)範例:建立DataFrame
import pandas as pd
data = {
'學號': [1, 2, 3, 4, 5],
'姓名': ['Aaron', 'Amber', 'Apple', 'Andy', 'Astrid'],
'國文': [100, 90, 80, 70, 60],
'英文': [90, 80, 70, 60, 50],
'數學': [100, 95, 85, 75, 65]
}
df = pd.DataFrame(data)

 
chp3.python基礎
第1章 1-1-輸出生日快樂-換行-跳格 1-2-輸出1個變數,多個變數 1-3-輸入姓名年紀,讀入變數,然後輸出歡迎訊息
第2章 2-1-type(a),查詢a的資料型態 2-2-輸入2個數字,然後計算,加減乘除,商數,餘數,次方 2-3-如何計算兩個相加:5+"6"(使用int()轉換函數) 2-4-輸入三位同學成績,然後計算平均成績
第3章if 3-1-輸入成績,雙向選擇:判讀分數a,及格,或不及格 3-2-雙向選擇:判斷輸入的數字,是奇數,或偶數? 3-3-多向選擇:判斷分數a,是滿分(100),是優等(a>85),或中等(60<a<85,或不及格(a<60) 3-4-多向選擇:判斷輸入的數字a,b,誰大?
第4章迴圈 4-1-印出10行恭喜發財-for迴圈 4-2-印出99乘法表i*j-for迴圈 4-3-99乘法表i*j,印到i=5就停止 4-4-99乘法表i*j,到i=5就跳過,直接顯示下一輪
4-5-印出10行恭喜發財-while迴圈 4-6-計算1到10的總和
第5章list 5-1-list基本操作(建立,新增,修改,刪除,查詢) 5-2-串列的四種查詢 5-3-串列的排序 5-4-list的index編號
5-5-list的排序 5-6-list的進階排序(呼叫自訂函數) 5-7-list的複製 5-8-list的合併
5-9-list的迴圈應用 5-10-list的List Comprehension(綜合表達式,推導式)
第7章dict 7-1-字典dict的基本操作(建立,新增,修改,刪除,查詢) 7-2-製作英翻中字典,輸入任何英文,顯示中文解釋 7-3-dict的keys, values, items 7-4-字典dict,如何刪除欄位
7-5-字典dict的3種迴圈 7-6-字典dict的複製 7-7-巢狀字典dict與串列字典
第9章函數 📣9-1-不傳回值函數(算面積) 📣9-2-傳回值的函數(算面積) 9-3-函數多個傳回值 9-4-函數傳任意個參數:*a1
9-5-函數傳list,或dict 📣9-6-lambda一行函數寫法,判別分數,及格或不及格? 📣9-7-lambda一行函數寫法,猜測1~99的終極密碼,回答:猜中,猜太小,猜太大
(1)判別分數,及格或不及格? 2種寫法:傳統def jige(x)的多行寫法:
def jigema(x):
if x>=60:
return "及格"
else:
return "不及格"

a1 = jigema(55)
print(a1)


(2)判別分數,及格或不及格? 2種寫法:lambda一行函數寫法:
jigema2 = lambda x:"及格" if x>60 else "不及格"
print(jigema2(55))

 

 
chp4.Pandas基礎入門練習
上課練習範例 📣4-1-讀csv 📣4-2-讀excel 📣4-3-畫圖 4-4-基本資料分析-平均-f-string格式-90以上
4-5-DataFrame與Series 4-6-df["欄名稱"]與df.loc["列名稱"] 4-7-列索引鍵取值.iloc 4-8-列索引鍵取值.loc
4-9-一般排序sort_values 4-10-進階排序(函數def,lambda) 4-11-修改-大小寫-replace 4-12-新增insert/append
📣4-13-刪除drop 4-14-查詢欄位-新增欄位df.assign() 4-15-條件查詢-一般做法-df.query() 📣4-16-關鍵字查詢-.str.contains('經管')
4-17-查缺值-isnull-isna-notna 4-18-axis軸,計算mean,sum,max,min 4-19-資料的合併:concat橫向併,縱向併,append上下併 📣4-20-條件查詢
1.Plotly,Plotly-Express簡介

1.Plotly,Plotly-Express簡介
(1)Plotly是一款使用JavaScript開發的製圖工具,提供了與主流資料分析語言互動的API(如:Python, R, MATLAB)。
(2)可以到官網 https://plot.ly/ 瞭解更多詳細的資訊。
Plotly能夠繪製具有使用者互動功能的精美圖表。
(3)Plotly Express簡介
plotly雖然功能強大, 卻一直沒有得到廣泛應用, 最主要的原因就是plotly的設置過於繁瑣。
因此, plotly 再度的推出簡化介面:Plotly Express, 簡稱 px。
px採用ROR等新一代 “約定優先" 程式設計模式, 內置了大量實用、現代的繪圖範本, 使用者只需調用簡單的api函數, 即可生成漂亮的互動畫面。
px 是 Plotly.py 的高度封裝, 它為複雜的圖表提供了一個簡單的語法. 且px與 Plotly 完全相容。
而px內置了的圖表組合, 已涵蓋了90%常用的繪圖需要。

 

 
chp11.讀取各種資料庫檔案
chp11-1.noSQL:csv
上課練習範例 11-1-1-Excel轉csv 11-1-2-筆記本自行做csv

Python大數據分析最重要的四個模組

1.Python大數據分析最重要的四個模組
Python資料分析最重要的四個模組:pandas、numpy、scipy、matplotlib。

(1)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』
也就是pandas的DataFrame資料結構,可以與它們之間互相簡易的存取。
然後再根據DataFrame來進行想要的大數據分析,它提供內建的演算法與資料結構,能夠用一個指令,就可以進行二維資料的『排序,篩選,關鍵字查詢,任意區間範圍查詢,統計學計算,平均值,變異數,標準差,字串檢索,字串取代,欄位樞紐分析、小記、欄位加總,把二維資料任意方式圖形視覺化顯示』
而建立pandas的DataFrame資料結構,有兩種方式,可以用column的方式來輸入資料,也可以用row的方式來輸入資料。
所以pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。

(2)Numpy: Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
Numpy是Python進行專業的數值計算之重要模組,因為大多數提供科學計算的包都是用numPy的陣列作為構建基礎,因此在進行高等數學計算時,numpy就是大數據分析的最重要工具了,因為高等數學運算,都是以矩陣的方式來進行運算,例如人工智慧,機器學習,深度學習,類神經網路計算等。

(3)sscipy:是基於numpy的科學計算包,包括統計、線性代數等工具。

(4)matplotlib:是最流行的用於繪製資料圖表的 Python 庫
也可以結合pandas模組來繪圖。

1.Numpy簡介與安裝

1.Numpy簡介與安裝
(1)Numpy簡介
A).Python資料分析最重要的四個模組:numpy、scipy、pandas、matplotlib。
B).Numpy是Python數值計算最重要的模組,大多數提供科學計算的包都是用numPy的矩陣作為構建基礎。
C).Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
scipy:是基於numpy的科學計算包,包括統計、線性代數等工具。
pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
matplotlib:是最流行的用於繪製資料圖表的 Python 庫

(2)Numpy安裝
如果已經安裝了anaconda,基本上就已經安裝Numpy了

 
chp11.讀取各種資料庫檔案
chp11-2.noSQL:json
上課練習範例 11-2-1-Excel轉json 11-2-2-自己寫json 11-2-3-字典dict轉json

Python大數據分析最重要的四個模組

1.Python大數據分析最重要的四個模組
Python資料分析最重要的四個模組:pandas、numpy、scipy、matplotlib。

(1)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』
也就是pandas的DataFrame資料結構,可以與它們之間互相簡易的存取。
然後再根據DataFrame來進行想要的大數據分析,它提供內建的演算法與資料結構,能夠用一個指令,就可以進行二維資料的『排序,篩選,關鍵字查詢,任意區間範圍查詢,統計學計算,平均值,變異數,標準差,字串檢索,字串取代,欄位樞紐分析、小記、欄位加總,把二維資料任意方式圖形視覺化顯示』
而建立pandas的DataFrame資料結構,有兩種方式,可以用column的方式來輸入資料,也可以用row的方式來輸入資料。
所以pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。

(2)Numpy: Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
Numpy是Python進行專業的數值計算之重要模組,因為大多數提供科學計算的包都是用numPy的陣列作為構建基礎,因此在進行高等數學計算時,numpy就是大數據分析的最重要工具了,因為高等數學運算,都是以矩陣的方式來進行運算,例如人工智慧,機器學習,深度學習,類神經網路計算等。

(3)sscipy:是基於numpy的科學計算包,包括統計、線性代數等工具。

(4)matplotlib:是最流行的用於繪製資料圖表的 Python 庫
也可以結合pandas模組來繪圖。

1.Numpy簡介與安裝

1.Numpy簡介與安裝
(1)Numpy簡介
A).Python資料分析最重要的四個模組:numpy、scipy、pandas、matplotlib。
B).Numpy是Python數值計算最重要的模組,大多數提供科學計算的包都是用numPy的矩陣作為構建基礎。
C).Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
scipy:是基於numpy的科學計算包,包括統計、線性代數等工具。
pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
matplotlib:是最流行的用於繪製資料圖表的 Python 庫

(2)Numpy安裝
如果已經安裝了anaconda,基本上就已經安裝Numpy了

 
chp11.讀取各種資料庫檔案
chp11-3.noSQL:xml
上課練習範例 11-3-1-Excel轉xml,缺考者

Python大數據分析最重要的四個模組

1.Python大數據分析最重要的四個模組
Python資料分析最重要的四個模組:pandas、numpy、scipy、matplotlib。

(1)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』
也就是pandas的DataFrame資料結構,可以與它們之間互相簡易的存取。
然後再根據DataFrame來進行想要的大數據分析,它提供內建的演算法與資料結構,能夠用一個指令,就可以進行二維資料的『排序,篩選,關鍵字查詢,任意區間範圍查詢,統計學計算,平均值,變異數,標準差,字串檢索,字串取代,欄位樞紐分析、小記、欄位加總,把二維資料任意方式圖形視覺化顯示』
而建立pandas的DataFrame資料結構,有兩種方式,可以用column的方式來輸入資料,也可以用row的方式來輸入資料。
所以pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。

(2)Numpy: Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
Numpy是Python進行專業的數值計算之重要模組,因為大多數提供科學計算的包都是用numPy的陣列作為構建基礎,因此在進行高等數學計算時,numpy就是大數據分析的最重要工具了,因為高等數學運算,都是以矩陣的方式來進行運算,例如人工智慧,機器學習,深度學習,類神經網路計算等。

(3)sscipy:是基於numpy的科學計算包,包括統計、線性代數等工具。

(4)matplotlib:是最流行的用於繪製資料圖表的 Python 庫
也可以結合pandas模組來繪圖。

1.Numpy簡介與安裝

1.Numpy簡介與安裝
(1)Numpy簡介
A).Python資料分析最重要的四個模組:numpy、scipy、pandas、matplotlib。
B).Numpy是Python數值計算最重要的模組,大多數提供科學計算的包都是用numPy的矩陣作為構建基礎。
C).Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
scipy:是基於numpy的科學計算包,包括統計、線性代數等工具。
pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
matplotlib:是最流行的用於繪製資料圖表的 Python 庫

(2)Numpy安裝
如果已經安裝了anaconda,基本上就已經安裝Numpy了

 
chp11.讀取各種資料庫檔案
chp11-4.noSQL:字典dict,串列list
上課練習範例 11-4-1-第1種:以欄位角度,將dict轉df 11-4-2-第2種:以列index角度,將list轉df 11-4-3-第3種:字典dict轉成df-groupby分群4做法

Python大數據分析最重要的四個模組

1.Python大數據分析最重要的四個模組
Python資料分析最重要的四個模組:pandas、numpy、scipy、matplotlib。

(1)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』
也就是pandas的DataFrame資料結構,可以與它們之間互相簡易的存取。
然後再根據DataFrame來進行想要的大數據分析,它提供內建的演算法與資料結構,能夠用一個指令,就可以進行二維資料的『排序,篩選,關鍵字查詢,任意區間範圍查詢,統計學計算,平均值,變異數,標準差,字串檢索,字串取代,欄位樞紐分析、小記、欄位加總,把二維資料任意方式圖形視覺化顯示』
而建立pandas的DataFrame資料結構,有兩種方式,可以用column的方式來輸入資料,也可以用row的方式來輸入資料。
所以pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。

(2)Numpy: Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
Numpy是Python進行專業的數值計算之重要模組,因為大多數提供科學計算的包都是用numPy的陣列作為構建基礎,因此在進行高等數學計算時,numpy就是大數據分析的最重要工具了,因為高等數學運算,都是以矩陣的方式來進行運算,例如人工智慧,機器學習,深度學習,類神經網路計算等。

(3)sscipy:是基於numpy的科學計算包,包括統計、線性代數等工具。

(4)matplotlib:是最流行的用於繪製資料圖表的 Python 庫
也可以結合pandas模組來繪圖。

1.Numpy簡介與安裝

1.Numpy簡介與安裝
(1)Numpy簡介
A).Python資料分析最重要的四個模組:numpy、scipy、pandas、matplotlib。
B).Numpy是Python數值計算最重要的模組,大多數提供科學計算的包都是用numPy的矩陣作為構建基礎。
C).Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
scipy:是基於numpy的科學計算包,包括統計、線性代數等工具。
pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
matplotlib:是最流行的用於繪製資料圖表的 Python 庫

(2)Numpy安裝
如果已經安裝了anaconda,基本上就已經安裝Numpy了

 
chp11.讀取各種資料庫檔案
chp11-5.noSQL:資料集dataset
上課練習範例 11-5-1-讀外部資料集:kaggle tips小費(分群),groupby-agg 11-5-2-內部資料集:鐵達尼號資料集(分群,繪圖),groupby-agg-plot
資料下載:鐵達尼號資dataset
(1)指令:
import seaborn as sns
df = sns.load_dataset('titanic')

(2)欄位參數:
PassengerId:乘客ID編號
survival:是否倖存(0 = No, 1 = Yes
pclass:船票等級(1 = 1st, 2 = 2nd, 3 = 3rd
sex:性別
Age:年齡
sibsp:在船上同為兄弟姐妹或配偶的數目
parch:在船上同為家族的父母及小孩的數目
ticket:船票編號
fare:船票價格
cabin:船艙號碼
embarked:登船的口岸(C = Cherbourg,Q = Queenstown,S = Southampton

補充:
Cherbourg:瑟堡,位於法國西北的一個城鎮,屬重要軍港和商港。
Queenstown:科芙,位於愛爾蘭,於1850年更名為皇后鎮(又稱昆士敦),以紀念維多利亞女王的造訪,直到1920年,愛爾蘭自由邦建立後,它被重新命名為科芙。
Southampton:南安普敦,位於陽光燦爛的英國南方海岸,是個港口城市,離倫敦僅1小時車程,鐵達尼號正是從這裡出航。

Python大數據分析最重要的四個模組

1.Python大數據分析最重要的四個模組
Python資料分析最重要的四個模組:pandas、numpy、scipy、matplotlib。

(1)pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
pandas模組應該是python用來進行一般日常的大數據分析,最重要的模組了。
因為pandas的DataFrame資料結構,可以快速的互通於所有的二維結構資料,包括『excel,csv,json,xml,mysql,任何的資料庫,網頁的表格資料,字典dict,二維串列list』
也就是pandas的DataFrame資料結構,可以與它們之間互相簡易的存取。
然後再根據DataFrame來進行想要的大數據分析,它提供內建的演算法與資料結構,能夠用一個指令,就可以進行二維資料的『排序,篩選,關鍵字查詢,任意區間範圍查詢,統計學計算,平均值,變異數,標準差,字串檢索,字串取代,欄位樞紐分析、小記、欄位加總,把二維資料任意方式圖形視覺化顯示』
而建立pandas的DataFrame資料結構,有兩種方式,可以用column的方式來輸入資料,也可以用row的方式來輸入資料。
所以pandas是大數據分析,非常實用的利器工具,是python資料分析的首選。

(2)Numpy: Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
Numpy是Python進行專業的數值計算之重要模組,因為大多數提供科學計算的包都是用numPy的陣列作為構建基礎,因此在進行高等數學計算時,numpy就是大數據分析的最重要工具了,因為高等數學運算,都是以矩陣的方式來進行運算,例如人工智慧,機器學習,深度學習,類神經網路計算等。

(3)sscipy:是基於numpy的科學計算包,包括統計、線性代數等工具。

(4)matplotlib:是最流行的用於繪製資料圖表的 Python 庫
也可以結合pandas模組來繪圖。

1.Numpy簡介與安裝

1.Numpy簡介與安裝
(1)Numpy簡介
A).Python資料分析最重要的四個模組:numpy、scipy、pandas、matplotlib。
B).Numpy是Python數值計算最重要的模組,大多數提供科學計算的包都是用numPy的矩陣作為構建基礎。
C).Numpy專門用來處理矩陣,它的運算效率比列表list串列更高效。
scipy:是基於numpy的科學計算包,包括統計、線性代數等工具。
pandas:是基於numpy的資料分析工具,能夠快速的處理結構化資料的大量資料結構和函數。
matplotlib:是最流行的用於繪製資料圖表的 Python 庫

(2)Numpy安裝
如果已經安裝了anaconda,基本上就已經安裝Numpy了

 
chp11.讀取各種資料庫檔案
chp11-6.noSQL:SQLite
上課練習範例 11-6-1.SQLite資料庫的編輯軟體下載與安裝 11-6-2-讀取一個已經建立好的SQLite資料庫 11-6-3-由dict建立SQLite資料庫,下載後再讀入
手機資料庫:SQLite

1.SQLite資料庫的編輯軟體下載與安裝

1.手機資料庫:SQLite特色:
☎ 結論1:SQLite是個檔案(像excel, access),所以容易攜帶,適合初學者
☎ 結論2:SQLite是一個免費的輕量型關聯式資料庫,相較於其它大型的企業級資料庫,無需伺服端的安裝,就可以在用戶端直接使用,對於小型的應用程式非常適合
☎ 因為檔案小,所以行動裝置的資料庫,有時候會使用SQLite資料庫


2.如何瀏覽,或修改既有舊的sqlite資料庫
(1).到sqlite官網,下載sqlite資料庫瀏覽器
到SQLite官網下載 下載:安裝版軟體:DB Browser for SQLite - .zip (no installer) for 64-bit Windows
或是
下載:免安裝版(PortableApp)

(2).安裝後,開啟資料庫:student.db
注意:sqlite的資料庫格式有多種:例如:
student.sqlite3
student.db


3.在browse data按鈕,選擇資料表:stu
可以看到8筆資料

選擇一筆資料,然後修改內容

 
chp11.讀取各種資料庫檔案
chp11-7.SQL:mySQL
注意:pandas讀取mySQL非常重要,詳細說明在chp7,chp8
教學 1.安裝mySQL 2.範例:建立第一個mySQL資料庫 3.Python先要安裝模組才能連線mySQL 4.方法1:安裝讀取mySQL模組:pymysql
教學 5.方法2:安裝讀取mySQL模組:pymysql
下載 1.架站安裝mySQL:Wamp 2.架站安裝mySQL:Xampp 3.下載ch09資料庫
建立mySQL資料庫 1.將ch09.sql轉成ch09資料庫 2.將有欄位名稱Excel檔案轉成mySQL資料庫 3.將無欄位名稱Excel檔案轉成mySQL資料庫
上課練習範例 14-1-用sqlalchemy連資料庫,新增1資料表 14-2-修改資料表(改約翰數學為59) 14-3-刪除約翰的資料) 14-4-新增1個欄位(歷史分數)
上課練習範例 14-5-新增1筆資料(新增amy的資料) 14-6-修改資料表(改約翰數學為59)
1.常用的架設Apache主機與mysql的安裝工具

常用的安裝mySQL與php架設主機工具:
(1).WAMP:
特色:Windows + Apache + MySql + PHP
WampServer是一款由法國人開發的Apache Web伺服器、PHP解譯器以及MySQL資料庫的整合套裝軟體。
wampserver支援22種語言,其中有中文簡體和中文繁體。
最大的優點:可以執行各種php的版本(PHP5 到 PHP7),其它的工具都只能夠執行單一版本php,所以有些舊版程式,就無法執行了。
圖示
下載:官網下載

(2).LAMP:
特色:Linux + Apache + MySql + PHP
下載:官網下載

(3).MAMP:
特色:MAC+ Apache + MySql + PHP(在windows也可以安裝)
MAMP 可同時支援 Apache, Nginx 網頁伺服器與其他常用的 PHP, MySQL, OpenSSL, APC, APCu, eAccelerator, XCache, OPCache, Python, Perl, phpMyAdmin, ImageMagick… 等各種套件與應用,安裝好之後只要把你的網頁或 WordPress, XOOPS… 等架站程式放到指定的資料夾之後就能開始運作。不用複雜的調整與設定,裝好軟體能有一個堪用的網頁伺服器環境。
比較特別的是,MAMP 可同時支援 Apache 與 Nginx 兩種不同的網頁伺服器與多個版本的 PHP
注意:若只想使用免費版 MAMP 的話,在安裝過程就不要勾選「MAMP PRO」這個選項,MAMP PRO 支援的功能與可用元件比較多,但只能試用14天,之後就必須付費才能繼續使用
下載:官網下載

(4).Xampp :
特色:xampp is x-os, apache, mysql, php , perl.
XAMPP是一套幫你把LAMP或WAMP環境整合好的安裝程式。上面網址是XAMPP的中文官方網站,目前它支援Linux、Windows、 MacOS、Solaris四種作業系統平台
下載:官網下載

從他們的名字就可以比較出來: AMP的A:是 Apach,
M:是 MySQL
P:是PHP
至於他們的開頭:L 是 Linux,
W 是windows ,
M 是 MAC,
X 是 x-os

(5).AMPPS:
特色:Apache + MySQL + PHP + Python + Softaculous auto-installer.
AMPPS,可架好網頁主機,還有超過250種知名的PHP架站程式可安裝,例如:架設WordPress、PhpBB、XOOPS、Joomla、osCommerce…
AMPPS就是「Apache + MySQL + PHP + Python + Softaculous auto-installer」的縮寫,
PHP跟Python都是現在非常熱門的網頁程式語言,
Softaculous auto-installer則是一套網站程式自動安裝工具,常與虛擬主機的管理後台(如cPanel、DirectAdmin、Plesk、H-Sphere…), 相結合,讓使用者可以快速地安裝各種網站程式
下載:官網下載

(6).phpstudy:
特色:華人主機架設工具,免費,中文界面,一次安裝的集成包。該套裝程式集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安裝,無須配置即可使用,是非常方便
下載:phpstudy官網


2.建立第一個mySQL資料庫

2.建立第一個mySQL資料庫:
(1)☎安裝Xampp或Wamp: 官網下載wamp
或是
官網下載Xampp

(2)☎下載mysql資料庫:
下載資料庫ch09
解壓縮:ch09.sql

(2)登入phpMyAdmin

(3)安裝資料庫ch09到mySQL
要匯入的檔案:
匯入➜sql語法➜ch09.sql
結果:
產生資料庫:ch09
產生資料表:books,company1,company2,employee


要安裝模組才能連線mySQL

3.Python要安裝模組(支援mySQL):
(1)觀念1:
☎在python裡面要連線mySQL,有三種模組都可以連線mySQL
☎不同的模組,要安裝不同驅動程式

(2)觀念2:
☎要連線mySQL,盡量不要用google的colaboratory,因為cola在雲端,若要連線到mySQL,mySQL必須架站在有固定IP的電腦上(要先架站,才能夠架設mySQL)。
☎現在大部分的家用電腦,會藉由wifi上網,wifi沒有固定IP,是無法架站的,就無法架設mySQL資料庫

(3)觀念3:
☎所以要連線mySQL,盡量用anaconda(spyder或是 jupyter)
☎方法,就是用本機localhost的anaconda,連線本機的mySQL



安裝讀取mySQL模組:pymysql

4.方法1:安裝讀取mySQL模組:pymysql

2.用支援mySQL模組:pymysql
☎方法:python 3.x版本的安裝mysql的指令:pip install pymysql


(1)必須下載第三方函數庫模組:

☎在陽春python內安裝mysql的指令:pip install mysqlclient

☎在anaconda內安裝mysql的方法:
python 2.x版本的安裝mysql的指令:pip install MySQL -python
python 3.x版本的安裝mysql的指令:pip install pymysql


(2)如何查閱你的python與anaconda的版本:
☎建議指令:conda info


其它指令:
☎使用 conda -V 命令檢查 Anaconda 版本
☎使用 conda --version 命令檢查 Anaconda 版本
☎使用 python -V 命令檢查 Python 版本
☎使用 python --version 命令檢查 Python 版本
☎使用 conda list anaconda$ 命令檢查 Anaconda 版本
☎使用 conda list 命令檢查 Anaconda 和 Python 版本
☎使用 conda info 命令檢查 Anaconda 和 Python 版本


(3)如何在anaconda更新python的最新版本:
☎指令1:conda update python
☎或指令2:conda update -all
conda update conda conda install anaconda= conda install python=3.9
☎注意有點電腦會出現錯誤訊息,要在安裝:C++ 14.0 Build Tools
下載 Build Tools

(2)安裝mysql(可以用Php-mysql套件)

(3)登入mysql,安裝資料庫:ch09.sql
(帳號root,密碼)
(資料庫:ch09)
(資料表:books)

(4)安裝Mysql,登入後建立資料庫,資料表



安裝第2種模組:SQLalchemy

5.方法2:安裝第2種模組連線mySQL:SQLalchemy
2.安裝指令:
☎ pip install sqlalchemy


1.建立第一個mySQL資料庫

1.建立第一個mySQL資料庫:
(1)☎安裝Xampp或Wamp: 官網下載wamp
或是
官網下載Xampp

(2)☎下載mysql資料庫:
下載資料庫ch09
解壓縮:ch09.sql

(2)登入phpMyAdmin
帳號user:root
密碼password:(沒有)
(不管wamp, xampp的帳號密碼都是上面所述)

(3)安裝資料庫ch09到mySQL
要匯入的檔案:
匯入➜sql語法➜ch09.sql
結果:
產生資料庫:ch09
產生資料表:books,company1,company2,employee


11-2.將有欄位名稱Excel檔案轉成mySQL資料庫

11-2.將Excel檔案轉成mySQL資料庫:
(1)步驟1:下載Excel檔案
成績score(excel)
小費tips(excel)
缺值score(excel)

(2)步驟2:先轉成csv格式檔案
成果圖
成績score(csv)
小費tips(csv)

(3)步驟3:以純文字格式開啟csv檔案,編碼改成『utf-8』存檔
成果圖
☎注意:編碼不可以選擇『具有BOM的utf-8存檔』,否則csv第一個欄位名稱的前2個字會被刪除。
例如:name ==> me
例如:姓名 ==> (null)

(4)步驟4:csv檔案有2種可能:無欄位名稱數據,有欄位名稱數據
成果圖
成果圖

(5)步驟5:若是,有欄位名稱數據,如何匯入csv數據到資料表
方法:
1.需先建立mySQL資料庫(mydb),
2.不需要建立資料表,直接匯入csv
成果圖

3.勾選:檔案第一行包含資料表的欄位名稱
成果圖成果圖

成果圖成果圖



11-3.將無欄位名稱Excel檔案轉成mySQL資料庫

11-3.將無欄位名稱Excel檔案轉成mySQL資料庫
(1)步驟1:下載Excel檔案
成績score(excel)
小費tips(excel)
缺值score(excel)

(2)步驟2:先轉成csv格式檔案
成果圖
成績score(csv)
小費tips(csv)

(3)步驟3:以純文字格式開啟csv檔案,編碼改成『utf-8』存檔
成果圖
☎注意:編碼不可以選擇『具有BOM的utf-8存檔』,否則csv第一個欄位名稱的前2個字會被刪除。
例如:name ==> me
例如:姓名 ==> (null)

(4)步驟4:csv檔案有2種可能:無欄位名稱數據,有欄位名稱數據
成果圖
成果圖

(5)步驟5:刪除欄位名稱

(6)步驟6:若是,無欄位名稱,如何匯入csv數據到資料表
方法:
1.需先建立mySQL資料庫(mydb),
2.再建立資料表(books1)
成果圖

3.不要勾選:檔案第一行包含資料表的欄位名稱
成果圖
成果圖


 
chp11-10.noSQL:把excel/csv傳到網站空間,分析結果讓主管也能夠存取
上課練習範例 11-10-1.(免費,穩定,速度快,但只有excel):上傳到wordpress網站 11-10-2.(免費,穩定,速度普通,只有excel/csv):上傳雲端轉成google sheet,再發布網路 11-10-3.(免費,穩定,不快,如何檔案皆可):上傳到GitHub網站 11-10-4.(免費但不穩定):將google雲端硬碟轉換成網站

wordpress網站

11-10-1.(免費,穩定,速度快):用wordpress.com網站來存放excel/csv檔案:

(1)優點:簡單,免費,穩定,速度快

(2)WordPress有2個平台:wordpress.org,wordpress.com
WordPress.com和WordPress.org之間的主要差異:


比較WordPress.com和WordPress.org

☎WordPress.com:


  • 是全世界知名的『架設網站、銷售商品、創作網誌』平台
  • 托管平台:WordPress.com是一個托管平台,您可以在其上建立和運行網站。所有的網站內容都存儲在WordPress.com的伺服器上。
  • 免費選項:WordPress.com提供免費的基本帳戶,但有一些功能和自訂選項是有限制的。
  • 支持和維護:WordPress.com負責網站的支持和維護,包括軟體更新、安全性和備份等。
  • 主題和外掛:WordPress.com提供了一些預設的主題供您選擇,但只有限制性地允許使用外部主題和外掛程式。
  • 廣告和收益:免費帳戶上的網站可能會顯示WordPress.com的廣告,且您無法從中獲得收益。升級到付費方案可以移除廣告並開始獲利。

☎WordPress.org:


  • 自主托管:WordPress.org提供的是自由軟體,您需要自己將其下載並安裝在您自己的伺服器上。
  • 自由度和自訂:使用WordPress.org,您可以完全自由地自訂網站,包括選擇主題、外掛和功能等。
  • 網站控制:您對網站的所有方面都有完全控制權,包括設計、功能和內容。
  • 社群和支援:WordPress.org有一個龐大的全球社群,可以提供支援、插件和主題等。
  • 盈利機會:由於自由度和控制權,您可以在WordPress.org上運營網站並從中獲得收益,例如通過廣告、電子商務等方式。
  • 總結來說,WordPress.com是一個方便的托管平台,適合沒有太多技術知識和預算的用戶。而WordPress.org則提供了更大的自由度和控制權,適合那些希望擁有完全自訂網站並有技術能力的用戶。

WordPress.com WordPress.org
托管平台
免費選項 -
自訂性 有限
支持和維護 提供支援和維護 自行負責
主題和外掛 有限的選擇 自由選擇
廣告和收益 免費帳戶可能顯示廣告且無法獲利 可以自行控制廣告並獲得收益
網站控制 有限 完全擁有控制權
社群和支援 社群有限 全球社群提供支援和插件主題等
盈利機會 有限 可以通過廣告、電子商務等方式獲得收益


(3)使用 WordPress.org 的方式架站,大概要花多少錢?
A.主機空間:每年約 1000元~數萬元
B.網域 (網址):每年約300元~數萬元

其餘選擇性的花費則是:
C.佈景主題:有的人可能會買佈景主題來快速套用版型,客製化網站的外觀,費用可能是 1500元~數萬元。
D.外掛程式:有的人可能會買外掛程式來擴充網站的功能,通常越能幫助你賺錢的外掛越多,這方面的花費就越高。

雖然如此,wordpress.org還是比wordpress.com還要便宜,
所以初學者還是建議,從wordpress.org建立網站入手(設計過程是免費的),只有放入網站空間託管才要花錢。
WordPress.org的建立方法
WordPress.org/com的費用比較

(4)要怎麼開始買主機 (遠端的電腦、網路空間)?
主機商,例如:
Bluehost 主機、
A2 Hosting 主機
Cloudways 主機,
他們都是世界級的主機商,穩定不斷線

(5)wordpress.com免費版:
最大的好處就是什麼都免費:『網址免費、主機免費、空間免費』,全部都免費。

但即然是免費的,就不免會限制一大堆。例如:
  • wordpress子網域免費網址,醜陋難以記得
  • 無法安裝外掛
  • 無Wordpress佈景主題安裝功能
  • 無wordpress廣告

(6)若要來存放excel/csv資料檔案的網站,應該選擇:wordpress.com網站
☎網址:WordPress.com
功能:架設網站、銷售商品、創作網誌

1.建立步驟1:註冊帳號:使用google帳號登入即可
2建立步驟2:選擇:免費方案:NT$ 0
3.建立步驟3:任運勾選:你的目標是什麼?
4.第一步,先幫網誌取個名字:myData
5.第二步:撰寫你的第一篇文章
新增文章標題:myData
點選左上角+
選擇『媒體➜檔案』➜上傳excel檔案
示意圖
顯示上傳到wordpress網站空間的excel檔案的網址:
點選檔案名稱➜複製檔案網址:
示意圖

(6)excel檔案的網址:
https://ccwtsu.files.wordpress.com/2023/05/member.xlsx

wordpress網站

11-10-2.(免費,穩定,速度普通,只有excel/csv):上傳雲端轉成google sheet,再發布網路:

(1)優點:簡單,免費,穩定,速度普通
缺點:只能讀取excel/csv

(2)參考影片教學

(6)如何抓取與發佈GOOGLE試算表CSV檔

1.先上傳的你excel/csv檔案到google雲端硬碟,例如:
學生成績(excel)
圖書資料(csv)

2.在google雲端,打開檔案
3.滑鼠右鍵➜共用➜一般存取權➜知道連結的任何人
4.要打開檔案:
(menu)檔案➜共用➜發布到網路➜網頁:選擇『Microsoft Excel』
示意圖
示意圖
5.取得google sheet的發布網路網址:
示意圖
 
11-10-3.(免費,穩定,不快):上傳到GitHub網站(使用GitHub 當作網頁空間)

(1)什麼是GitHub?
☎網址:https://github.com/
☎特色1:它的 G 跟 H 是大寫,其它字母小寫。它是一個商業網站,是目前全球最大的 Git Server
☎特色2:它屬於社群平台(類似FaceBook,IG),可以與全世界的『寫程式的網頁』分享訊息/分享程式碼的社群平台。
☎特色3:它也是程式開發者最好的履歷。因為你過去所做過的專案、分享過的程式訊息/觀念、寫過哪些 Code,都可以看到記錄,無法造假。
☎特色4:GitHub 是全世界最大的程式技術社群(6500萬程式設計師使用,有2億個open source程式碼開放分享出來),能與程式相關人員建立聯繫並進行交流,從中取得最新的知識與累積經驗。也能參與開放原始碼專案的建立。

(2)GitHub 主要有兩個核心用途:
☎開發者(Developer)可以儲存自己的專案(Project)
☎將對程式設計有興趣的人聚集在一起的社交平台(network)


(3)GitHub的費用?
☎如果你採用分享的方式(上傳你的 Open Source 專案),可以完全免費使用。
☎早期,如果想要在GitHub建立私人專案,則需要收費,費用是每個月 7 塊錢美金。
☎Microsoft 在 2018 年 10 月併購了 GitHub,以往需要付費才能開設私人專案,
從2019 年 1 月開始,即使是免費帳號也可無限制的開設私人專案。


(4)鑑別Git vs GitHub,兩者不同
☎Git:是工具:Git是用來版本控制的工具,類似『程式開發的日記』,會記錄每天程式開發過程的進度記錄,若是程式開發錯誤,可以回到之前正確的日期。
☎GitHub:是網站,網站空間,可以代管原始碼(程式碼,網頁,git資料...)的服務平台server。
GitHub 的本體是一個 Git Server,網站則是使用 Ruby on Rails 開發
☎GitHub 是一個雲端代管服務和公司,可以讓你的git 封存更輕鬆管理;
如果想找尋並處理開源程式碼Open Source專案的開發者,GitHub就是很好的選擇(託管網站)
☎Git是一個分散式的版本控制軟體,GitHub則是一個存放Git的空間
影片介紹:Git + GitHub 入門

(6)如何使用GitHub來免費發佈網站:
參考影片:用GitHub來免費發佈網站
參考影片:把做好的網頁秀在網路上
參考網頁:GitHub 註冊教學

☎上傳到GitHub網站的好處:免費,穩定。

(5-1).建立帳號方法:
(A).到GitHub官網:https://github.com/
(B).註冊帳號sign up:註冊 GitHub 網站,sign up 

(5-2).上傳網站到GitHub方法:
☎可以把 GitHub 想像成 Google 雲端,你將自己的作品上傳到雲端 第一步:準備好您要發佈的網頁,放在資料夾裡

第二步:在GitHub按下 New Repository

第三步:提供New Repository 名稱,必須遵守這個規則:名稱.github.io,完成後按下新增

第四步:按下uploading an existing file,然後將網頁資料夾移到 New Repository 裡

第五步:上傳檔案之後,在Commit 輸入訊息,最後再按下送出
第六步:到Settings / GitHub Pages 裡,按下Check it out here. 裡頭的Source選擇main 並Save
第七步:按下網址,並在網址後面加上/資料夾名稱/首頁名稱
完成

1.google雲端硬碟

11-10-3.(免費但不穩定):將google雲端硬碟轉換成網站:

☎優點:簡單,免費
☎缺點:連續連線3次,就會被鎖住,要等一段時間才能繼續連線
☎缺點:連線速度慢

☎ 觀念:你目前的google雲端硬碟,只是硬碟,不是網站空間,
必須經過3步驟轉換,才能變成網站空間:

☎1步驟1:在google雲端硬碟建立一個目錄(例如data)
並且滑鼠右鍵➜共用➜一般存取權➜知道網址的任何人


☎2步驟2:將任意一個網頁拖曵到data目錄裡面
下載簡易網頁檔案,然後上傳
下載excel檔案,然後上傳


☎3步驟3:使用轉換工具drv.tw(可以把雲端硬碟轉成網站)
網址drv.tw: https://www.drv.tw/
選擇goole帳號,即完成轉換
你的個人網站:https://xvjnbud2edusyypwayaabw.on.drv.tw/data/
將你的excel/csv檔案上傳到web目錄下
excel的網絡網址:


4.步驟4:若嫌網址太長,可以用短網址工具,
例如gg.gg:http://gg.gg/
(可以自訂網址名稱)

 
chp12.網路爬蟲:web crawler
chp12-1.Pandas讀取網頁表格
上課練習範例 12-1-1.pandas讀網頁第1個(df[0]),第2個表格(df[1]) 12-1-2-用match找到相關表格,轉成df 12-1-3-pandas用attrs尋找網頁標籤tag



 
chp12.網路爬蟲:web crawler
chp12-2.讀取html網頁:Request
上課練習範例 12-2-1.Requests讀取網頁html標籤 12-2-2-Requests讀取json網頁結構



 
chp12.網路爬蟲:web crawler
chp12-3.分析html標籤tag內容:BeautifulSoup
上課練習範例 12-3-1.BeautifulSoup做網頁的資料爬取 12-3-2-BeautifulSoup網路爬蟲,查所有的超連結的innerhtml, href, class



 
chp5.Pandas一維資料結構:Series
上課練習範例 5-1-1-建立Series一維資料 5-1-2-Series一維資料的常用函數(1):max,min,mean,sum,std,median,describe 5-1-3-Series一維資料的基本計算數目函數(2):size,count(),len(sr),sr+2
5-1-4-Series的取值2種方法:位置法,索引鍵法 📣5-1-5-Series有哪幾種unique,
有幾種nunique,
☎每一種的數目value_counts

(重要性:商業數據分析經常會用value_counts查看各參數出現次數)
(1)性別有哪幾種?:df['性別'].unique()

(2)性別有幾種?:df['性別'].nunique()

(3)統計性別的『男,女』,出現的頻率?(統計內容值的出現次數):df['性別'].value_counts()

(4)統計性別的『男,女』,出現頻率的百分比?:value_counts(normalize=True)

(5)柱狀圖,比較性別的『男,女』,出現的頻率,2種:
次數比較圖
import matplotlib.pyplot as plt
sr.value_counts().plot(kind="bar")
百分比比較圖
sr.value_counts(normalize=True).plot(kind='bar')

 

 
chp6.Pandas二維資料結構:DataFrame
chp6-1.建立DataFrame
【課表9-2頁】
上課練習範例 ☎6-1-0-(成果圖)欄位角度,用串列list建立DataFrame
上課練習範例 6-1-1-欄位角度,用字典dict建立DataFrame 6-1-2-用串列list建立DataFrame,並設定欄索引鍵 6-1-3-用串列list建立DataFrame,並設定列索引鍵 6-1-4-用純字典dict建立DataFrame
(1)自己建立DataFrame:加上欄位
df = pd.DataFrame()
df['name'] = ["約翰", "湯姆"]
df['math'] = [90, 70]
df['eng'] = [100,80]


 

 
chp6.Pandas二維資料結構:DataFrame
chp6-2.DataFrame的5個屬性:index,columns,values內容,shape維度,dtypes資料型態
【課表9-5頁】
上課練習範例 6-2-1-5個屬性index,columns,values內容,shape維度,dtypes資料型態 6-2-2-取得欄索引鍵:df['xx'], df.xx 📣6-2-3-修改欄位名稱,df.rename(columns={"xx":"xx"}) 6-2-4-用純字典dict建立DataFrame
上課練習範例 6-2-5-設定index列索引鍵set_index,取消列索引鍵reset_index
(1)修改局部欄位名稱:數學➜math:
df2.rename(columns={"數學":"math"}, inplace=True)

(2)修改全部欄位名稱
df2.columns = ["id", "name", "sex", "chi", "eng", "math"]

(3)全部的數學成績,都為0分
df2['math'] = 0

(4)全部的中文成績,都加10分
df2['chi'] += 10

(5)修改約翰的數學成績 = 0,方法1:欄位取值入手
df2['math'][3] = 0

(6)修改約翰的英文成績,為0分,方法2:索引取值入手
df2.set_index('name', inplace=True)
df2.loc['約翰','chi'] = 10
☎注意:設定值(索引,欄位)的特殊寫法:df.loc[索引, 欄位] = 100
 

 
chp6-3.列索引鍵有自動對齊的功能
【課表9-14頁】
上課練習範例 6-3-1-資料加入,列索引鍵會自動對齊資料,無資料則NAN 6-3-2-列索引鍵vs欄位,轉置(df.T)
 

 
chp6-4.數據清理:處理缺值NAN(檢查是否有缺值,統計總數,刪除,填滿缺值)
【課表9-16頁】
上課練習範例 6-4-1-查全部有缺值NAN的總共數目 6-4-2-查colunmns/index有缺值NAN的數目(降維查缺值) 6-4-3-缺值NAN的處理(1):刪除該筆df.dropna() 6-4-4-缺值NAN的處理(2):缺值填滿m1= df.fillna(值)
6-4-5-缺值填上面列的值(3)= df.fillna(method='ffill')
(1)什麼是NAN?
NAN = not a number,缺值
(2)注意:要計算前,一定要先處理缺值,否則計算的結果,沒意義
(3)數據分析的步驟:數據採集,數據清洗,數據『查詢、計算』,數據分析與挖掘,數據可視化。
(4)數據的清洗:包括:缺值的處理、日期格式的統一,字串的取代

(5)如何快速檢查,是否有缺值,2步驟:
步驟1:先快速檢查全體:df.info():某個column,若有數字減少,代表有缺值
步驟2:熒光筆標註缺值:df.style.highlight_null()

(6)判斷是否有缺值條件查詢,錯誤寫法:
a1 = df['數學']=="NAN"

正確寫法:
a1 = df['數學'].isna()
a1 = df['數學'].isnull()

(7)統計每個欄位的缺值共幾個?
查各欄位有缺值NAN的統計資料 = df.isnull().sum(axis=0)
axis方向口訣:橫1,縱0
不寫axis,預設代表axis=0

(8)計算全部缺考人數
df.sum() ==>算總和,會降1維 ==> 2D -> 1D
df.sum().sum() ==> 會降2維 ==> 2D -> 數字

(9)快速判別是否有缺值,2種方法:
df2.isna().sum().sum()
df2.info()

(10)把有缺值的資料,都填入0
方法:df.fillna(0, inplace=True)

(11)把有缺值的資料,都填入平均值
平均 m1 = df[['中文','英文','數學']].mean().mean()
df.fillna(m1, inplace=True)

(12)刪除有缺值的資料:df.dropna(inplace=True)

(13)刪除中文有缺值的資料 = df2.dropna(subset=['中文'])

(14)缺值填上面列的值
方法:df.fillna(method='ffill', inplace=True)
ffill = forward fill

(15)缺值填下面列的值
df2.fillna(method="bfill", inplace=True)
df2.fillna(method="backfill", inplace=True)

(16)統計各科目有缺值NAN的總數
df.isnull().sum(axis=0).to_frame().T

(17)查那些科目有缺值的?(有,就顯示True)
df.isnull().any(axis=0).to_frame().T

(18)統計每個人有缺值的總數
df.set_index("姓名", inplace=True)
df.isnull().sum(axis=1)

(19)查每個人,是否有缺值(True/False)?
df.isnull().any(axis=1).to_frame()

(20)只要有缺值,就顯示個人資料
a1 = df.isnull().any(axis=1)
df[a1]
注意:條件查詢的a1,一定是一條series的True/False
 

 
chp6-5.DataFrame取值,三種格式
【課表9-22頁】
上課練習範例 📣6-5-0-三種取值法,簡易練習
📣6-5-1-欄索引鍵取值 6-5-2-列索引鍵取值 6-5-3-列欄索引鍵共同取值 6-5-4-設定『麥克,傑克』的『英文,數學』= 0分
 

 
chp6-6.新增一欄/一列
【課表9-31頁】
上課練習範例 📣6-6-1-新增一欄df['歷史']=[..],新增一列df.loc['amy']=[...]
 

 
chp6-7.用軸axis來輔助函數計算(mean,sum,max,min)
【課表9-33頁】
上課練習範例 📣6-7-1-用axis來計算『個人平均,各科平均』
(1)計算平均分數 = mean()
# 計算1維Series的平均分:df['math].mean()
# 計算2維DataFrame,每個欄位columns的平均分:df.mean(axis=0)
# 計算2維DataFrame,每個列index的平均分:df.mean(axis=1)

(2)axis=0,axis=1是什麼意思?
# numpy和pandas中 axis(軸)的概念:
# (A)df.mean(axis=1),表示『橫向計算』,依照row(index),計算每一水平列(每個學生)的平均


# (B)df.mean(axis=0),表示『縱向計算』依照欄位(colunmns),計算每一垂直欄位(每個科目)的平均


# 記憶法:橫移,總領
# 記憶法:橫1 ,縱0

(3)軸有2種寫法:axis=0/1,或是axis=columns/index,它們是什麼意思?
# (A)原本df是2維資料,我要計算,若是向上推壓資料(向上方向為縱向,axis=0),最後2維表格被壓扁成一列(最後是一列資料,axis=index)

# (B)原本df是2維資料,我要計算,若是向右推壓資料(向右方向為橫向,axis=1),最後2維表格被壓扁成一欄(最後是一欄位料,axis=columns)

# (c)重要結論:axis代表2維資料的『降維』方法:
☎推壓2D數據的『過程』:橫向推axis=1,縱向推axis=0
☎推壓2D數據的『結果』:最後變成一欄axis=columns,最後變成一列axis=index
☎推壓降維的『方向,與結果』,是不同方向(彼此垂直)
正是因為它們的方向不同,會造成很多同學無法理解
☎其實,它們在描述同一件事情,只是描述的時間點不同,一個是『推壓過程』,一個是『資料最後降維結果的型態』


(4)新增一欄(各科平均),用axis來計算『各科平均』,2種方法:
df.set_index("姓名", inplace=True)
df.loc['各科平均'] = df[['中文','英文','數學']].mean(axis='index')
df.loc['各科平均2'] = df[['中文','英文','數學']].mean(axis=0)
 

 
chp6-8.篩選資料2種方法:條件查詢,query
【課表9-36頁】
上課練習範例 6-8-1-查『數學不及格的』2種:條件查詢,query 6-8-2-多條件查詢:『數學>=60,且,英文>85』 6-8-3-多條件查詢:『數學<60,或,英文<70』
 

 
chp6-9.DataFrame的3種合併:concat,append,merge
【課表9-40頁】
(1)concat左右上下合併:
# 橫向合併指令:df3 = pd.concat([df,df2], axis=1)
# 縱向合併指令:df5 = pd.concat([df,df4], axis=0)
# axis軸的口訣:橫移(1),總領(0)
(2)append上下合併:df3 = df1.append(df2, ignore_index=True)
(3)merge關聯合併(同名欄位):df3 = df1.merge(df2, on='性別')
(4)merge關聯合併(不同名欄位):dfnew = df.merge(df4, how='left', left_on='畢業學校', right_on='學校')
上課練習範例 6-9-1-DataFrame合併:concat(橫向併,縱向併) 6-9-2-append(上下合併) 6-9-3-merge(同名欄位的左右合併) 6-9-4-merge(不同名欄位的左右合併)
6-9-5-merg(左右合併的各種練習)
 

 
chp6-10.DataFrame的常用函數(排序,max,min,sum,mean,出現次數value_counts)
【課表9-45頁】
上課練習範例 6-10-1-前3筆head(3),iloc[0:3],後3筆tail(3),iloc[-3:0] 6-10-2-隨機取3筆sample(3),df基本資料describe 6-10-3-使用函數sum,mean,max,min,計算欄位,計算列『科目總和,平均,最大,最低』 6-10-4-數學最高的前3名nlargest
上課練習範例 📣6-10-5-sort_values數學排序由低到高,排序由高到低 6-10-6-rank,數學排名,算三科排名,三科排名合併到原資料 6-10-7-rank,新增欄位『個人平均,全班排名』 6-10-8-☎計算出現次數:value_counts(非常重要)
種類unique,
類別幾種nunique
 

 
chp6-11.函數處理日期資料型態
【課表9-53頁】
上課練習範例 6-11-1-讀取excel檔案,取得彼德的出生年,月,日,星期,季 6-11-2-日期查詢(1):excel檔查2000年出生(條件查詢) 6-11-3-日期查詢(2):excel檔查2000年出生(df.loc['2000']) 6-11-4-自行建立生日日期欄位:pd.to_datetime(['2000-5-6']
上課練習範例 6-11-5-日期加2天,加2月,加2年(時間差函數Timedelta)
 

 
☎(非常重要)進階計算:使用自訂映射函數:map,applymap,apply來轉換計算
【課表9-61頁】
上課練習範例 ☎6-12-0-比較『map, applymap, apply7』的不同
上課練習範例 ☎6-12-1-map迴圈標示性別為『male, female』 ☎6-12-2-applymap迴圈函數判別DataFrame及格/不及格 ☎6-12-3-apply+axis來判別個人最低分,科目最低分 ☎6-12-4-計算個人平均,排名次,標註當掉,計算年齡
6-12-5-標註最低分,最高分,範圍標註,小數點精度,漸層圖標註 6-12-6-柱狀圖標註,文字漸層圖,某欄位反白標註,某欄位文字標註 ☎6-12-7-applymap條件標註某欄位,apply條件標註某欄位,apply條件標註某索引列
☎初級商業數據五大分析型態:
(1)自訂映射函數,有3種:apply(), applymap(), map()



(B).比較不同1:
# DataFrame.apply:一次對整行或整列進行操作。
# DataFrame.applymap:一次操作一個元素
# Series.apply:一次操作一個元素
# Series.map:一次操作一個元素

(C).比較不同2:應用調用物件不同
# map:只能應用在Series (不會降維) # applymap:只能應用在DataFrames (不會降維)
# apply:在DataFrames和Series都可以 (會降維)

(D).比較不同2:處理邏輯不同
# map:對每個 Series 元素進行處理
# applymap:對 DataFrames 的每個元素進行處理
# apply:在軸(axis)進行處理(會降維),適用於更複雜的操作和聚合,行為和返回值取決於函數。

(2)指令
# df.apply(func, axis=0, args=(), **kwds)
# df.applymap(func, na_action, args=(), **kwds)
# Series.map(arg, na_action=None)

(3).結論:4種映射計算:
(3-1).df[欄位].map(函數) ➜ 處理1維數據,x是儲存格 ➜ 沒有降維不需要指定axis

(3-2).df.applymap(函數) ➜ 處理2維數據,x是儲存格 ➜ 沒有降維不需要指定axis

(3-3).df.apply(函數, axis=1) ➜ 可以處理2維數據,x是1維的欄/列(降維)➜ 2維數據的降維,要指定axis

(3-4).df[欄位].apply(函數) ➜ 也可以處理1維數據,x是儲存格➜ 1維數據的降維,不可以指定axis
 

 
輸出到excel,建立sheet,並且繪圖
【課表14-14頁】
上課練習範例 6-13-1-輸出excel檔案,建立單一資料表sheet ☎6-13-2-把dataframe存入excel檔案(單一資料表),並且畫圖 ☎6-13-3-輸出excel檔案:建立3個資料表sheet(英文成績,數學成績,中文成績)
可複製模板 6-13-1-輸出excel檔案,建立單一資料表sheet ☎6-13-2-把dataframe存入excel檔案(單一資料表),並且畫圖 ☎6-13-3-輸出excel檔案:建立3個資料表sheet(英文成績,數學成績,中文成績)
 

 
📣chp6-14.表格視覺化(熒光筆標註重點)設定表格樣式style:反白標註highlight_max,漸層標註gradient,柱狀圖標註bar,數字精度set_precision,表格標題,apply/applymap迴圈控制標註
上課練習範例 6-14-1-標註最低分,最高分,範圍標註,小數點精度,漸層圖標註 6-14-2-柱狀圖標註,文字漸層圖,某欄位反白標註,某欄位文字標註 ☎6-14-3-applymap條件標註某欄位,apply條件標註某欄位,apply條件標註某索引列
 

 
chp7.Pandas的繪圖
chp7-1.折線圖,line
上課練習範例 7-1-1-折線圖(設定x,y),顯示中文,設定樣式 7-1-2-折線圖(若不設定x,y,就要設定列索引鍵)
chp7-2.柱狀圖/長條圖(看類別比較),bar
上課練習範例 7-2-1-柱狀圖,堆疊柱狀圖(堆疊stacked=True) 7-2-2-水平柱狀圖barh 7-2-3-數學成績排序後,柱狀圖
chp7-3.餅狀圖/圓形圖(百分比),pie
上課練習範例 7-3-1-數學成績餅狀圖pie,突出最高分explode,顯示百分比 7-3-2-餅狀圖自動顯示數學最低分的是誰(自動設定最低者的突出值)
chp7-4.直方圖(看頻率分佈),hist
上課練習範例 7-4-1-直方圖hist(顯示數值頻率分佈) 7-4-2-直方圖hist,鐵達尼號的年齡分佈
chp7-5.箱型圖(看頻率分佈),box,boxplot
上課練習範例 7-5-1-箱型圖box,更簡單地顯示數值頻率分佈:Q1(25%),Q1(50%),Q3(75%) 7-5-2-鐵達尼號資料集,箱型圖box顯示年齡頻率分佈
chp7-6.分群圖(2組資料比較圖),df.groupby.plot()
上課練習範例 7-6-1-分群groupby繪柱狀圖bar,鐵達尼號存亡分群下,看男女數量比較 7-6-2-分群groupby直方圖hist,鐵達尼號存亡分群下,看年齡頻率分佈 7-6-3-分群groupby箱型圖box,鐵達尼號存亡分群下,看年齡頻率分佈(用箱型圖看分佈)
chp7-7.散佈圖/點分佈圖(看2/3組資料有否關聯),scatter
上課練習範例 7-7-1-產品的運動時間,卡路里,脈搏關係圖(3組資料散佈圖scatter:設定(x,y,c) 7-7-2-鐵達尼號3組資料關係圖(散佈圖scatter)
chp7-8.畫多個子圖,二種方法
上課練習範例 7-8-1-方法1:建立畫布fig與軸ax,畫3個子圖 7-8-2-方法2:用分群groupby.agg(['max','min','mean']),自動畫3個子圖 7-8-3-方法2:用分群groupby.agg(欄位1=(),欄位2=()),自動畫2個子圖
☎chp7-9.輸出到excel,並且繪圖,並且輸出多個sheet
上課練習範例 ☎7-9-1-輸出excel檔案,建立單一資料表sheet ☎7-9-2-把dataframe存入excel檔案(單一資料表),並且畫圖 ☎7-9-3-輸出excel檔案:建立3個資料表sheet(英文成績,數學成績,中文成績)
可複製模板 ☎7-9-1-輸出excel檔案,建立單一資料表sheet ☎7-9-2-把dataframe存入excel檔案(單一資料表),並且畫圖 ☎7-9-3-輸出excel檔案:建立3個資料表sheet(英文成績,數學成績,中文成績)
 



 
chp8.數據分析的各種方法:

📣chp8-1.頻數分析(一維數據)
☎重要性:頻率分析是指對數據集中的數據進行統計分析,計算每個值出現的次數,以便對數據集進行更深入的分析
☎指令1:用 value_counts() 函數對一維Series進行頻率分析
上課練習範例 📣8-1-1-一維數據的頻數分析:
Series有哪幾種unique,
有幾種nunique,
☎每一種的數目value_counts

(重要性:商業數據分析經常會用value_counts查看各參數出現次數)
📣8-1-2-一維數據的基本計算數目函數 ☎8-1-3-一維數據統計數目的2種做法(value_counts,groupby().size()),新生入學人數比較圖,地區比較圖
(1)性別有哪幾種?:df['性別'].unique()

(2)性別有幾種?:df['性別'].nunique()

(3)統計性別的『男,女』,出現的頻率?(統計內容值的出現次數):df['性別'].value_counts()

(4)統計性別的『男,女』,出現頻率的百分比?:value_counts(normalize=True)

(5)柱狀圖,比較性別的『男,女』,出現的頻率,2種:
次數比較圖
import matplotlib.pyplot as plt
sr.value_counts().plot(kind="bar")
百分比比較圖
sr.value_counts(normalize=True).plot(kind='bar')

📣chp8-2.(分1群)比較分析(一維欄位分群後的統計資料:數目統計,對應第2欄位統計)
☎重要性:Groupby 是Pandas 中的一個很強大的操作方法。它可以將資料「分群/分組」,之後在分群的資料上做運算,然後再將運算的結果組合起來
☎指令1:用 df.groupby("性別").size() 對性別欄位進行分群,並統計數量
☎指令2:用 df.groupby("性別")['數學'].mean() 對性別欄位進行分群,並計算對應數學的平均分數
上課練習範例 📣8-2-1-建立性別欄位的分群groupby(),統計數量.size(),取出子群get_group('男') ☎8-2-2-一維數據統計數目的2種做法(value_counts,groupby().size()),新生入學人數比較圖,地區比較圖 ☎8-2-3-男女數學比較柱狀圖,男女數學分佈比較 📣8-2-4-男女數學平均,男女最高分,男女最高分是誰
上課練習範例 📣8-2-5-數學最高最低,中文最高最低,英文最高最低 ☎8-2-6-分群groupby(性別)後,新增欄位『數學平均』.agg(平均 = ('數學','mean') 8-2-7-印出性別分群後的前2筆,男女的第1筆,男女數學排序後(低到高)前2筆,男女數學最高分資料,男女數學基本統計資料 📣8-2-8-(進階題)分群groupby...applys使用自訂函數來分群計算
(1)重點1:Groupby的特色:
(A).Groupby 是Pandas 中的一個很強大的操作方法。它可以將資料「分群/分組」,之後在分群的資料上做運算,然後再將運算的結果組合起來:
(B).pandas 其中一個最重要的功能,就是groupby,是一個很強大的操作方法。
(C).它可以將資料「分群」,之後在分群的資料上做運算,然後再將運算的結果組合起來。
(D).例如1:老師想看一年級中,不同班級的「數學」以及「英文」成績的平均值 (依班級分群,在分群中做平均值運算)。
(D).例如2:國家想統計不同都市中收入的中位數 (依都市分群,在分組中取中位數),
都可以使用 groupby 運算達成。
(E).規律原則:如果資料中有「類別變數」出現,那通常就會有 groupby 的需求。
例如:性別(男/女),班級(1A/1B/1C),等級(A/B/C),洲(亞洲/非洲/美洲),膚色(黑/白/黃)…等


(2)groupby分解與重組示意圖:

groupby結構示意圖2
groupby結構示意圖3
groupby結構示意圖4
groupby結構示意圖5


(3)分群後的統計數量,統計圖:
正解:統計分群數量(series): df.groupby('性別').size()
柱狀圖:df.groupby('性別').size().plot(kind="bar")
(不是首選)統計分群數量(df): df.groupby('gender').count()

(4)性別分群後,統計(男生)的數量,有2種方法:
df.groupby('性別').count()['男'])
df.groupby('性別').get_group('男')

(5)性別分群後,統計(男生數學)的最大值,有2種方法:
(A).逆法:用['數學]取得最高分後,再逆取['男']子群
df.groupby('性別')['數學'].max()['男']

(B).順法:用get_group('男'),順取男生子群,然後取數學['數學'].max()最高分
df.groupby('性別').get_group('男')['數學'].max()

(6)一維series分群的方法,有4種:
#第1種: df['性別'].value_counts() :相同數值的數目(Series)
#第2種: df['性別'].unique() :相同的幾類資料(Series)
#第3種: df['性別'].nunique() :m數值,種類數目(number)
#第4種: df.groupby('性別')



 



 
📣chp8-4.(分2群)多層分群,多層索引鍵分析的2種方法

☎重要性:多層分群是『交叉分析,樞紐分析』的基礎
☎解法:多層索引鍵分析,有2種方法
☎方法1:用groupby(["分群1","分群2"])
☎方法2:先設定2層索引鍵,再用df.xs("社會組",level="選組")跨層級查詢
(1).多層分群方法1:用groupby(["分群1","分群2"])
上課練習範例 8-4-1-二個層級的分析,三個層級的分析 8-4-2-多層級分析,比較2個方法:df.groupby vs df.xs()
(1).多層分群方法2:先設定2層索引鍵,再用df.xs("社會組",level="選組")跨層級查詢
上課練習範例 8-4-3-設定2層列索引鍵,查男生+社會組的資料,查男生+社會組的數學分數 8-4-4-把『外層,內層列索引鍵』對調,以外層列索引鍵排序,取消設定列索引鍵 8-4-5-跨層級的資料索引,直接查詢內層列索引鍵:查社會組+數學分數
 



 
☎chp8-5.(分2群)交叉分析表,樞紐分析表
☎重要性:商業數據分析,一個重要的目的:就是要分析不同參數之間的彼此關係
☎方法:必須先建立『樞紐分析表』(交叉分析表),然後再繪圖這個樞紐分析表,就可以達成分析目的
☎指令1:用groupby...unstack法
☎指令2:pivot_table法

☎(1)樞紐分析表的必要指令:展開unstack(把列索引鍵調換成欄索引),堆疊收合stack(把欄索引鍵調換成列索引)
上課練習範例 8-5-1-樞紐分析表的必要指令unstack:把列索引鍵調換成欄索引
 
☎(2)建立樞紐分析表的2種方法:groupby...unstack法,pivot_table法
上課練習範例 8-5-2-建立樞紐分析表方法1:groupby...unstack法 8-5-3-建立樞紐分析表方法2:pivot_table法
 

 
☎chp8-6.Groupby分群分析的5種題型
# ☎Groupby分群數據分析的五種型態:y=f(x,y)
(1)型態1:(1個分群,1組統計次數)的頻數分析【1變數x: size=f(x)】
(2)型態2:(2個分群,1組對應統計次數)的樞紐分析表,交叉分析圖【2變數x,y: size=f(x,y)】
(3)型態3:(2個分群,1組對應)之樞紐分析表,交叉分析圖【3變數x,y,z: z=f(x,y)】
(4)型態4:(1個分群,2組對應)之分析表/圖【3變數x,y1,y2: y1=f1(x), y2=f2(x),y1y2不同群組不同刻度】
(5)型態5:(1個分群,3xn組對應新增欄位(mean,max,min))之對應分析表/圖【4變數x,y1,y2,y3: y1=mean(x), y2=max(x), y3=min(x),y1y2y3不同群組不同刻度】
☎(1)型態1:(1個分群,1組統計次數)的頻數分析【1變數x: size=f(x)】
型態1:3種方法:
方法1:dfnew = df['入學年份'].value_counts()
方法2:dfnew = df.groupby('入學年份')[欄位].size()
方法3:df.groupby('入學年份').agg({"欄位":"size"})
上課練習範例 8-6-1-分析不同『入學年份,性別』的人數統計
☎(2)型態2:(2個分群,1組對應統計次數)的樞紐分析表,交叉分析圖【2變數x,y: size=f(x,y)】
型態2:2種方法:
方法1:dfnew =df.groupby(['入學年份','性別']).size().unstack(level='性別')
方法2:df.pivot_table(index='入學年份', columns='性別', values='名字', aggfunc=len)

#分群: dfnew = df.groupby(['入學年份','性別']).size()
#樞紐分析表: dfnew = df.groupby(['入學年份','性別']).size().unstack(level='性別')
#交叉分析圖: df.groupby(['入學年份','性別']).size().unstack(level='性別').plot(kind='bar')
上課練習範例 8-6-2.型態2:分析不同入學年份,男女的人數統計:groupby...unstack法 8-6-3-型態2:分析不同入學年份,男女的人數統計:pivot_table法
☎(3)型態3:(2個分群,1組對應)之樞紐分析表,交叉分析圖【3變數x,y,z: z=f(x,y)】
型態3:
#分群: dfnew = df.groupby(['業務單位','銷售產品'])['銷售金額'].sum()
#樞紐分析表: dfnew = df.groupby(['業務單位','銷售產品'])['銷售金額'].sum().unstack(level='銷售產品')
#交叉分析圖: df.groupby(['業務單位','銷售產品'])['銷售金額'].sum().unstack(level='銷售產品').plot(kind='bar')
上課練習範例 8-6-4-型態3:顯示總和的樞紐分析表,交叉分析圖【3變數x,y,z: z=f(x,y)】
☎(4)型態4:1個分群,2組對應分析表/圖【3變數x,y1,y2: y1=f1(x), y2=f2(x),y1y2不同類別不同刻度】
型態4:
#同時設定左邊y軸,右邊y軸
ax1=df.groupby("業務單位").agg({"銷售金額":"sum","銷售數量":"sum"})\
.plot(kind="bar", legend=True, rot=0,secondary_y="銷售數量",title="Fig.1:不同業務單位的銷售金額與數量")
ax1.set_xlabel("業務單位")
ax1.set_ylabel('銷售金額')
ax1.right_ax.set_ylabel('銷售數量')
上課練習範例 8-6-5-型態4:不同業務單位的『銷售數量總和,銷售金額總和』對應表格與圖
☎(5)型態5:(1個分群,3xn組對應新增欄位(mean,max,min))之對應分析表/圖【4變數x,y1,y2,y3: y1=mean(x), y2=max(x), y3=min(x),y1y2y3不同群組不同刻度】
型態5:2種方法
#方法1:dfnew = df.groupby('業務單位')[['銷售數量','銷售金額']].agg(['max','min','mean','sum'])
#方法2:dfnew = df.groupby('業務單位').agg({"銷售數量":['max','min','mean','sum'],"銷售金額":['max','min','mean','sum']})
上課練習範例 8-6-6-顯示不同業務單位在銷售數量和銷售金額的min,max,mean,sum(用agg新增欄位)
 

 
☎☎☎chp8-7.樞紐分析表,交叉分析圖的花式變化與進階技巧
(1)型態1:計算總和+3種百分比表格➜可說出數據背後的3種物理意義,與定量比對
(2)型態2:分群『年,季,月,星期幾』➜看出時間效應,季節效應,月份效應,星期效應
(3)型態3:樞紐分析表的排序➜強項分析,弱項分析(最強的前3名,最弱的3名)
(4)型態4:用apply熒光筆標註,樞紐分析表的顏色➜標註強項,弱項
(5)型態5:其它(數字千分位,上下圖,堆疊圖)
上課練習範例 8-7-1-型態1:計算總和+3種百分比表格➜可說出數據背後的3種物理意義,與定量比對 8-7-2-型態2:分群『年,季,月,星期幾』➜看出時間效應,季節效應,月份效應,星期效應 8-7-3-型態3:樞紐分析表的排序➜強項分析,弱項分析 8-7-4-型態4:用apply熒光筆標註,樞紐分析表的顏色➜標註強項,弱項
8-7-5.其它(數字千分位,上下圖,堆疊圖)
 

 
chp9.各種資料清理方法:字串處理,正規表達式,日期處理,電話處理,Email處理,分割字串(常用於資料清理)
chp9-1.字串處理:取第1字,最後2字,字串取代,關鍵字查詢,查詢有數字資料,文字長度
上課練習範例 9-1-1-字串處理:取第1字,最後2字,字串取代,關鍵字查詢,查詢有數字資料,文字長度
chp9-2.正規表達式,Regular Expression
上課練習範例 9-2-1-應用1:正規表達式:取代名字裡的數字,印出姓,印出姓+稱呼(王先生)
(1)功能:能夠方便做『資料的清理:例如:字串處理,數字處理,日期處理,Email處理,電話處理』

各種格式的代表符號:
(2)數字:
1個數字:\d
3個數字:\d\d\d
3個數字:\d{3}
很多個數字:\d+

(3)文字(含數字):
1個文字:\w
2個文字:\w\w,或\w{2}
很多個文字:\w*

(4)文字(不含數字):
1個文字:[a-zA-Z]

(5)出現特殊符號:
出現- : [-]
出現% : [%]
範例:
表示2023-10-15格式 : (\d+)-(\d+)-(\d+)

(6){3}代表出現3次:
3個數字:\d{3}
3個文字:\w{3}

(7) r,要求原始字串:
範例:df['name'].str.replace(r'\d', '')
這是因為正規表示式,會用到許多符號,可能會與 Python 內建的功能相衝突,
所以會在你需要的格式前面加上 r ,代表原始字串 raw

(8) ():代表群組,可以取出,對照到逗點的輸出\1
對照:前面的第1個群組() ==> 取出後變成\1
對照:前面的第2個群組() ==> 取出後變成\2
範例:df['name'].str.replace(r'\w*(\d)', '\1')
(把數字鍵,取出)
這是因為正規表示式,會用到許多符號,可能會與 Python 內建的功能相衝突,
所以會在你需要的格式前面加上 r ,代表原始字串 raw


(9)正規表達式常常配合2個函數
(a).取代函數:df.str.replace(r'', r'')
(b).截取函數:df.str.extract(r'')

(10)extract函數:
功能:會根據()幾個群組,就自動分成幾個欄位
範例:df2 = df['birth'].astype(str).str.extract(r'(\d+)-(\d+)-(\d+)')
分析:因為有3個(\d+),所以extract,會根據()3個群組,就自動分成3個欄位

(11)replace函數:
使用正規表達式,前面3個() () ()群組,對應後面的3個\1 \2 \3
【正確做法】:df2 = df['birth'].astype(str).str.replace(r'(\d+)-(\d+)-(\d+)', r'\1年\2月\3日')
【原理】:df['birth']的日期型態是datetime資料,所以要先轉成文字資料:astype(str)
注意:取代replace()函數,是建立在文字的格式上才能取代(df[].str.replace('','')

(12)把dataFrame的資料形態,轉換的函數:
轉成str格式:df['birth'].astype(str)
參考網頁

(13)特別注意:讀取日期欄位後,其資料型態是datatime,不是Object,也不是str:
方法:轉成str格式:df['日期'].astype(str)
結論:讀取日期後,一定要轉成str

chp9-3.截取日期,取代函數.str.replace(r'',r''),截取函數.str.extract(r'')
上課練習範例 9-3-1-截取日期:三種方法把【birth】格式改成2002年5月19日 9-3-2-截取日期:str.extract函數截取【birth】,成為年月日三個欄位
chp9-4.截取電話
上課練習範例 9-4-1-截取電話:正規式取出區號,正規式取出電話號碼(沒有區碼),正規式取出區碼+電話號碼(刪除()-符號) 9-4-2-截取電話:replace正規式取出:[03]:2355-2391
chp9-5.截取Email
上課練習範例 9-5-1-修改gamil改回gmail,關鍵字查全部gmail,刪除Email方法1(replace),刪除Email方法2(extract)
chp9-6.分析興趣(split分割函數)(
上課練習範例 9-6-1-str.split分割函數:使用參數expand=True,將各種興趣hobby分割出來
 

 
chp13.需要寫SQL語法的連線mySQL:pymysql
--- SQL語法與Pandas的指令對照
摘要 1.SQL語法與Pandas對照 2.SQL語法摘要
下載 1.架站安裝mySQL:Wamp 2.架站安裝mySQL:Xampp 下載ch09資料庫,安裝到mySQL上
建立mySQL資料庫 1.將ch09.sql轉成ch09資料庫 2.將有欄位名稱Excel檔案轉成mySQL資料庫 3.將無欄位名稱Excel檔案轉成mySQL資料庫
上課練習範例(colab) 13-1-用sqlalchemy連資料庫,新增1資料表 13-2-讀取資料庫ch09, 讀取books全部資料 13-3-查詢,新增查詢的欄位(sum, mean, max, min) 13-4-查詢姓名='麥克'的資料
13-5-查詢有缺值的資料 13-6-排序,依照數學分數排序 13-7-印出前3筆,後3筆,印出全部資料 13-8-關鍵字查詢
13-9-查詢性別同類的數量groupby,查詢性別有幾種distinct 13-10-計算男女的數學平均:groupby-agg
上課練習範例(anaconda spyder) 13-1-用sqlalchemy連資料庫,新增1資料表 13-2-讀取資料庫ch09, 讀取books全部資料 13-3-查詢,新增查詢的欄位(sum, mean, max, min) 13-4-查詢姓名='麥克'的資料
13-5-查詢有缺值的資料 13-6-排序,依照數學分數排序 13-7-印出前3筆,後3筆,印出全部資料 13-8-關鍵字查詢
13-9-查詢性別同類的數量groupby,查詢性別有幾種distinct 13-10-計算男女的數學平均:groupby-agg
1.建立第一個mySQL資料庫

1.建立第一個mySQL資料庫:
(1)☎安裝Xampp或Wamp: 官網下載wamp
或是
官網下載Xampp

(2)☎下載mysql資料庫:
下載資料庫ch09
解壓縮:ch09.sql

(2)登入phpMyAdmin
帳號user:root
密碼password:(沒有)
(不管wamp, xampp的帳號密碼都是上面所述)

(3)安裝資料庫ch09到mySQL
要匯入的檔案:
匯入➜sql語法➜ch09.sql
結果:
產生資料庫:ch09
產生資料表:books,company1,company2,employee


13-2.將有欄位名稱Excel檔案轉成mySQL資料庫

13-2.將Excel檔案轉成mySQL資料庫:
(1)步驟1:下載Excel檔案
成績score(excel)
小費tips(excel)
缺值score(excel)

(2)步驟2:先轉成csv格式檔案
成果圖
成績score(csv)
小費tips(csv)

(3)步驟3:以純文字格式開啟csv檔案,編碼改成『utf-8』存檔
成果圖
☎注意:編碼不可以選擇『具有BOM的utf-8存檔』,否則csv第一個欄位名稱的前2個字會被刪除。
例如:name ==> me
例如:姓名 ==> (null)

(4)步驟4:csv檔案有2種可能:無欄位名稱數據,有欄位名稱數據
成果圖
成果圖

(5)步驟5:若是,有欄位名稱數據,如何匯入csv數據到資料表
方法:
1.需先建立mySQL資料庫(mydb),
2.不需要建立資料表,直接匯入csv
成果圖

3.勾選:檔案第一行包含資料表的欄位名稱
成果圖成果圖

成果圖成果圖



13-3.將無欄位名稱Excel檔案轉成mySQL資料庫

13-3.將無欄位名稱Excel檔案轉成mySQL資料庫
(1)步驟1:下載Excel檔案
成績score(excel)
小費tips(excel)
缺值score(excel)

(2)步驟2:先轉成csv格式檔案
成果圖
成績score(csv)
小費tips(csv)

(3)步驟3:以純文字格式開啟csv檔案,編碼改成『utf-8』存檔
成果圖
☎注意:編碼不可以選擇『具有BOM的utf-8存檔』,否則csv第一個欄位名稱的前2個字會被刪除。
例如:name ==> me
例如:姓名 ==> (null)

(4)步驟4:csv檔案有2種可能:無欄位名稱數據,有欄位名稱數據
成果圖
成果圖

(5)步驟5:刪除欄位名稱

(6)步驟6:若是,無欄位名稱,如何匯入csv數據到資料表
方法:
1.需先建立mySQL資料庫(mydb),
2.再建立資料表(books1)
成果圖

3.不要勾選:檔案第一行包含資料表的欄位名稱
成果圖
成果圖


 
chp14.不需要寫SQL語法的連線mySQL:sqlalchemy
摘要 1.SQL語法與Pandas對照 2.SQL語法摘要
下載 1.架站安裝mySQL:Wamp 2.架站安裝mySQL:Xampp 下載ch09資料庫
建立mySQL資料庫 1.將ch09.sql轉成ch09資料庫 2.將有欄位名稱Excel檔案轉成mySQL資料庫 3.將無欄位名稱Excel檔案轉成mySQL資料庫
上課練習範例 14-1-用sqlalchemy連資料庫,新增1資料表 14-2-修改資料表(改約翰數學為59) 14-3-刪除約翰的資料 14-4-新增1個欄位(歷史分數)
上課練習範例 14-5-新增1筆資料(新增amy的資料) 14-6-SQLAlchemy查詢全部資料(不使用SQL語法,直接指定資料表)
1.建立第一個mySQL資料庫

1.建立第一個mySQL資料庫:
(1)☎安裝Xampp或Wamp: 官網下載wamp
或是
官網下載Xampp

(2)☎下載mysql資料庫:
下載資料庫ch09
解壓縮:ch09.sql

(2)登入phpMyAdmin
帳號user:root
密碼password:(沒有)
(不管wamp, xampp的帳號密碼都是上面所述)

(3)安裝資料庫ch09到mySQL
要匯入的檔案:
匯入➜sql語法➜ch09.sql
結果:
產生資料庫:ch09
產生資料表:books,company1,company2,employee


14-2.將有欄位名稱Excel檔案轉成mySQL資料庫

14-2.將Excel檔案轉成mySQL資料庫:
(1)步驟1:下載Excel檔案
成績score(excel)
小費tips(excel)
缺值score(excel)

(2)步驟2:先轉成csv格式檔案
成果圖
成績score(csv)
小費tips(csv)

(3)步驟3:以純文字格式開啟csv檔案,編碼改成『utf-8』存檔
成果圖
☎注意:編碼不可以選擇『具有BOM的utf-8存檔』,否則csv第一個欄位名稱的前2個字會被刪除。
例如:name ==> me
例如:姓名 ==> (null)

(4)步驟4:csv檔案有2種可能:無欄位名稱數據,有欄位名稱數據
成果圖
成果圖

(5)步驟5:若是,有欄位名稱數據,如何匯入csv數據到資料表
方法:
1.需先建立mySQL資料庫(mydb),
2.不需要建立資料表,直接匯入csv
成果圖

3.勾選:檔案第一行包含資料表的欄位名稱
成果圖成果圖

成果圖成果圖



14-3.將無欄位名稱Excel檔案轉成mySQL資料庫

14-3.將無欄位名稱Excel檔案轉成mySQL資料庫
(1)步驟1:下載Excel檔案
成績score(excel)
小費tips(excel)
缺值score(excel)

(2)步驟2:先轉成csv格式檔案
成果圖
成績score(csv)
小費tips(csv)

(3)步驟3:以純文字格式開啟csv檔案,編碼改成『utf-8』存檔
成果圖
☎注意:編碼不可以選擇『具有BOM的utf-8存檔』,否則csv第一個欄位名稱的前2個字會被刪除。
例如:name ==> me
例如:姓名 ==> (null)

(4)步驟4:csv檔案有2種可能:無欄位名稱數據,有欄位名稱數據
成果圖
成果圖

(5)步驟5:刪除欄位名稱

(6)步驟6:若是,無欄位名稱,如何匯入csv數據到資料表
方法:
1.需先建立mySQL資料庫(mydb),
2.再建立資料表(books1)
成果圖

3.不要勾選:檔案第一行包含資料表的欄位名稱
成果圖
成果圖


 
chp21.實例:鐵達尼號資料分析
資料下載:鐵達尼號資dataset
(1)指令:
import seaborn as sns
df = sns.load_dataset('titanic')

(2)欄位參數:
PassengerId:乘客ID編號
survival:是否倖存(0 = No, 1 = Yes
pclass:船票等級(1 = 1st, 2 = 2nd, 3 = 3rd
sex:性別
Age:年齡
sibsp:在船上同為兄弟姐妹或配偶的數目
parch:在船上同為家族的父母及小孩的數目
ticket:船票編號
fare:船票價格
cabin:船艙號碼
embarked:登船的口岸(C = Cherbourg,Q = Queenstown,S = Southampton

補充:
Cherbourg:瑟堡,位於法國西北的一個城鎮,屬重要軍港和商港。
Queenstown:科芙,位於愛爾蘭,於1850年更名為皇后鎮(又稱昆士敦),以紀念維多利亞女王的造訪,直到1920年,愛爾蘭自由邦建立後,它被重新命名為科芙。
Southampton:南安普敦,位於陽光燦爛的英國南方海岸,是個港口城市,離倫敦僅1小時車程,鐵達尼號正是從這裡出航。
上課練習範例
 

 
chp22.實例:系所生源分析
chp22-1.實例:系所生源分析
資料下載 1.範例資料庫:student.xls
1-將三組excel資料放在同一DataFrame 22-1-成果圖 22-1-程式碼
2-入學年份人數統計表 22-2-成果圖 22-2-程式碼
3-入學年份人數統計圖 22-3-成果圖 22-3-程式碼
4-不同入學年份的男女人數統計表 22-4-成果圖 22-4-程式碼
5-不同入學年份的男女人數統計圖 22-5-成果圖 22-5-程式碼
6-不同畢業學校的人數統計表 22-6-成果圖 22-6-程式碼
7-不同畢業學校的人數統計圖 22-7-成果圖 22-7-程式碼
8-不同入學管道的人數統計表 22-8-成果圖 22-8-程式碼
9-不同入學管道的人數統計圖 22-9-成果圖 22-9-程式碼
10-不同入學年份,不同入學管道的人數比較表(1) 22-10-成果圖 22-10-程式碼
11-不同入學年份,不同入學管道的人數比較表(2) 22-11-成果圖 22-11-程式碼
12-不同入學年份,不同入學管道的人數比較圖 22-12-成果圖 22-12-程式碼
13-讀取學校地區表 22-13-成果圖 22-13-程式碼
14-入學資料加上註明地區的欄位 22-14-成果圖 22-14-程式碼
15-顯示合併後出現缺值的數量 22-15-成果圖 22-15-程式碼
16-統計入學新生所在縣市 22-16-成果圖 22-16-程式碼
17-統計入學新生所在縣市圖(排序,高到低,前10) 22-17-成果圖 22-17-程式碼
18-統計入學新生所在地區的人數表 22-18-成果圖 22-18-程式碼
19-入學新生所在地區的人數比較圖 22-19-成果圖 22-19-程式碼
20-不同地區,不同縣市的人數比較圖 22-20-成果圖 22-20-程式碼
21-不同入學年份,不同地區的人數比較表 22-21-成果圖 22-21-程式碼
22-不同入學年份,不同地區的人數比較圖 22-22-成果圖 22-22-程式碼
23-不同地區,不同入學年份的人數比較圖 22-23-成果圖 22-23-程式碼
 

 
chp23.實例:業務銷售分析
chp23-1.實例:業務銷售分析
資料下載 1.範例資料庫:sales.csv
1-顯示前5筆 23-1-成果圖 23-1-程式碼
2-顯示業務單位有幾個? 23-2-成果圖 23-2-程式碼
3-比較不同業務單位的銷售金額(總和) 23-3-成果圖 23-3-程式碼
4-比較不同業務單位的銷售數量(總和),銷售金額(總和) 23-4-成果圖 23-4-程式碼
5-比較不同業務單位的銷售數量(總和),銷售金額(總和),反白標註最大值 23-5-成果圖 23-5-程式碼
6-比較不同業務單位的銷售數量(總和),銷售金額(總和),反白標註最小值 23-6-成果圖 23-6-程式碼
7-比較不同業務單位的銷售數量(總和),銷售金額(總和),紅色標註金額的最大值 23-7-成果圖 23-7-程式碼
8-比較不同業務單位的銷售數量(總和),銷售金額(總和),反白標註全部的銷售金額 23-8-成果圖 23-8-程式碼
9-圖形比較不同業務單位的銷售數量(總和),銷售金額(總和) 23-9-成果圖 23-9-程式碼
10-圖形比較不同業務單位的銷售數量(總和),銷售金額(總和),左右2個y軸 23-10-成果圖 23-10-程式碼
11-2個子圖比較不同業務單位的銷售數量(總和),銷售金額(總和) 23-11-成果圖 23-11-程式碼
12-不同業務單位,不同業務員的銷售金額(總和)比較 23-12-成果圖 23-12-程式碼
13-【難】輸出到excel,依據不同業務單位,建立4個sheet 23-13-成果圖 23-13-程式碼
14-【難】輸出到excel,並繪製圖形 23-14-成果圖 23-14-程式碼
15-不同業務員的銷售金額比較(由高到低) 23-15-成果圖 23-15-程式碼
16-【難】不同業務單位下,每一個業務員的銷售金額比較(由高到低) 23-16-成果圖 23-16-程式碼
17-【難】排序業務單位(低到高),再排序每一個業務員的銷售金額(由高到低) 23-17-成果圖 23-17-程式碼
18-找出每個業務單位,業務員的最高銷售金額 23-18-成果圖 23-18-程式碼
19-找出每個業務單位,業務員的最高銷售金額(顯示業務員姓名) 23-19-成果圖 23-19-程式碼
20-找出每個業務單位,業務員的Top 2銷售金額(顯示業務員姓名) 23-20-成果圖 23-20-程式碼
21-找出每個業務單位,業務員的最低銷售金額(顯示業務員姓名) 23-21-成果圖 23-21-程式碼
22-【難】找出每個業務單位,業務員的最高銷售金額(顯示業務員姓名) 23-22-成果圖 23-22-程式碼
23-【難】列出每個業務單位,每個業務員的銷售金額(反白標註最高金額) 23-23-成果圖 23-23-程式碼
24-列出不同業務單位,不同銷售產品的銷售金額比較表 23-24-成果圖 23-24-程式碼
25-列出不同業務單位,不同銷售產品的銷售金額比較表(pivot_table) 23-25-成果圖 23-25-程式碼
26-【難】列出不同業務單位,不同銷售產品的銷售金額比較表(數字加上千分位) 23-26-成果圖 23-26-程式碼
27-繪圖出不同業務單位,不同銷售產品的銷售金額比較 23-27-成果圖 23-27-程式碼
28-【難】輸出表格到excel,並繪圖出不同業務單位,不同銷售產品的銷售金額比較 23-28-成果圖 23-28-程式碼
29-繪圖出不同業務單位,不同銷售產品的銷售金額(堆疊圖比較) 23-29-成果圖 23-29-程式碼
30-列出不同業務單位,不同銷售產品的銷售金額比較表,加上總和欄位,累計每個產品的總和(方法1:pivot_table) 23-30-成果圖 23-30-程式碼
31-列出不同業務單位,不同銷售產品的銷售金額比較表,加上業務銷售總和欄位+累計每個產品的總和(方法2:用axis=1) 23-31-成果圖 23-31-程式碼
32-列出不同業務單位,不同銷售產品的銷售金額比較表,加上銷售產品總和index(方法3:用axis=0) 23-32-成果圖 23-32-程式碼
33-【難】列出不同業務單位,不同銷售產品的銷售金額%百分比比較表(全部的銷售單位的所有銷售產品總和為100%) 23-33-成果圖 23-33-程式碼
34-【難】列出不同業務單位,不同銷售產品的銷售金額%百分比比較表(全部的銷售單位的所有銷售產品總和為100%) 23-34-成果圖 23-34-程式碼
35-【難】列出不同業務單位,不同銷售產品的銷售金額%百分比比較表(每一樣銷售產品總和為100%) 23-35-成果圖 23-35-程式碼
36-【難】列出不同業務單位,不同銷售產品的銷售金額%百分比比較表(每一個的銷售單位的總和為100%) 23-36-成果圖 23-36-程式碼
37-列出不同業務單位,不同人員,對不同銷售產品的銷售金額比較表 23-37-成果圖 23-37-程式碼
38-列出不同業務單位,不同人員,對不同銷售產品的銷售金額比較表(pivot_table) 23-38-成果圖 23-38-程式碼
39-列出不同業務單位,不同產品,的不同『銷售數量,銷售金額』比較表(pivot_table) 23-39-成果圖 23-39-程式碼
40-列出不同業務單位,其銷售數量的max/min/mean/sum,銷售金額的max/min/mean/sum 23-40-成果圖 23-40-程式碼
41-列出不同業務單位,其銷售數量的mean,銷售金額的sum 23-41-成果圖 23-41-程式碼
42-新增欄位『年』 23-42-成果圖 23-42-程式碼
43-新增欄位『月』 23-43-成果圖 23-43-程式碼
44-新增欄位『季』 23-44-成果圖 23-44-程式碼
45-新增欄位『星期幾』 23-45-成果圖 23-45-程式碼
46-顯示每一年的銷售總金額 23-46-成果圖 23-46-程式碼
47-顯示每一年的銷售總金額(方法2) 23-47-成果圖 23-47-程式碼
48-繪圖每一年的銷售總金額 23-48-成果圖 23-48-程式碼
49-不同月的銷售總金額 23-49-成果圖 23-49-程式碼
50-每一年的不同產品的銷售總金額比較 23-50-成果圖 23-50-程式碼
51-每一年的不同產品的銷售總金額繪圖比較 23-51-成果圖 23-51-程式碼
52-不同『季』的銷售總金額 23-52-成果圖 23-52-程式碼
53-不同『年的四季』銷售總金額比較 23-53-成果圖 23-53-程式碼
54-比較『2015,2016』年的銷售次數比較 23-54-成果圖 23-54-程式碼
55-【難】比較『2015,2016』年四季,不同業務單位的銷售金額比較 23-55-成果圖 23-55-程式碼
56-比較『2015,2016』年四季,業務單位1的銷售金額柱狀圖 23-56-成果圖 23-56-程式碼
57-比較『季報』2015,2016年,業務單位1的銷售金額總量 23-57-成果圖 23-57-程式碼
58-繪圖比較『季報』2015,2016年,業務單位1的銷售金額總量 23-58-成果圖 23-58-程式碼
 

 
chp24.實例:股票市場分析
chp24-1.實例:台積電,聯發科的股票線型
資料下載 1.範例資料庫:stock.xlsx
上課練習範例
 

 
chp25.實例:問卷資料分析
chp25-1.實例:問卷資料分析
資料下載 1.範例資料庫:ma_res.xlsx
上課練習範例
 

 
chp30.電商數據分析:淘寶服飾店3年數據
下載 下載淘寶電商的營業數據
上課練習範例 30-1

 
chp31.市場分析:市場佔有率分析(3年驅蟲劑市場分析)
下載 下載3年驅蟲劑市場數據
上課練習範例 31-1-市場佔有率分析(3年驅蟲劑市場分析)

 
chp32.市場分析:市場趨勢分析(3年驅蟲劑市場數據)
下載 下載3年驅蟲劑市場數據
上課練習範例 32-1-市場趨勢分析

 
chp33.市場分析:市場細分分析(滅鼠殺蟲劑細分市場數據)
下載 下載3年滅鼠殺蟲劑細分市場數據
上課練習範例 33-1-市場細分分析

 
chp34.市場分析:消費者需求分析
下載 下載3年滅鼠殺蟲劑細分市場數據
上課練習範例 34-1-消費者需求分析

 
chp35.運營分析:店鋪數據化運營的SEO關鍵字詞根與統計
下載 下載淘寶服飾店的流量數據
上課練習範例 35-1-淘寶服飾店流量的SEO關鍵字詞根與統計分析

 
chp36.運營分析:商品推廣方案分析
下載
上課練習範例 36-1-商品推廣方案分析

 
chp37.運營分析:競品分析(追踪競爭對手的SKU庫存價格)
下載 下載:對手的單品SKU價格 下載:對手的單品價格
上課練習範例 37-1-採集競爭對手網頁的庫存資料 37-2-競品調價預警