數據分析到底是什麼?該怎麼做?數據思維又是什麼?數據分析怎麼應用到日常工作生活?
為了更好的理解數據分析的這些問題,我們來結合美國大選這個具體例子,帶著大家做一場「探索性數據分析」。
第一步:確定分析目的
美國總統大選投票結果已公布,一陣熱鬧過後,是否好奇,想看清這場「鬧劇」是怎麼回事?出於這個目的,我們收集數據,來做一次「探索性數據分析」之旅。
第二步:理解業務
看著選票地圖,很多人想不通的是,為什麼老百姓都參加了投票,但是官方顯示的票數,每個州只有幾票?這些票到底怎麼來的?
這就和美國的選舉規則有關,美國各州人民都參與了投票,但是總統並不是由他們直接選出來的,能投票選總統的是另外一波人「國會議員」:
既然是議員投票選總統,選民還投票幹嘛?
這和另外一個規則有關,雖然議員的票數決定了誰做總統,但是議員不能決定自己想投給誰,而是由選民決定的,也就是說,全體選民投票的結果決定議員的票給誰。比如:阿拉巴馬州有超過50%的選民投票給A,那麼這個州所有議員的票都屬於A,這個規則叫「贏家通吃」。
所以我們看到各州的投票結果顯示 XX : 0 贏的人得到所有選票,輸的人一張也得不到。
總統選舉背景材料(近三屆的候選人和黨派)
第三步:確定研究指標
理解完業務,開始產生以下疑問:
有哪些州?
選舉的州作為指標:需要所有州的名字
每個州可以投多少票?
每個州的投票數:需要所有州對應的投票票數
這些票最後投給了誰? 但是每一屆參與選舉的候選人都不一樣,這個「誰」,在不同的選舉年份中怎麼做交叉對比?
想到的欄位:每次選舉的兩個人分別代表兩個黨派,為了做交叉對比,得票的主體用「黨派」
第四步:找原始數據
1、尋找美國州名的數據。
在電腦上搜索到有州名的網頁,上面看到一張州名列表。我們用EXCEL根據以下步驟把這張表提取出來。
2、獲取近三年的選票數據。
在網上找到2016年選票數據,用EXCEL直接獲取下來。(步驟如上略)
但是找2012年選票數據的時候,只找到一個選票地圖
再去找2020年選票,找到最詳細的數據,複製時發現是「圖片格式」!
那我們怎麼獲得圖片裡這些數據,難道要抄下來?
不!我們是「數據分析師」,我們要專業,不能手抄,我們用Python!
Python獲取圖片中信息:
市面上有免費圖片文字識別的開源功能,我們只需要調用相應接口,此處選擇了百度的圖片文字識別。
思路:用Python 調用現成的「圖片文字識別接口」,識別提取兩張圖片中的文字數字信息。
按照教程先安裝「百度接口包」
打開python的shell 如下圖安裝「百度接口包」
再按照教程「新建AipOcr」
打開自己的Python編輯器(此處我用的是PyCharm),把教程上的代碼拷貝到PyCharm
以上步驟是生成一個Client對象,這個對象能調用「百度接口」裡面的各種功能接口。
那麼下一步告訴python,這個對象要去調用哪個接口。如下圖我們之前選擇了「通用文字識別(高精度版)」
在接口說明裡,找到了這個接口的調用方法,按照教程,把需要的部分拷貝下來
獲取完官方標準的教程代碼,現在我們來完善他。去「控制臺」註冊登錄帳號和創建應用。
更新完ID再告訴python是哪張圖片
Python默認去識別同一個項目文件夾下的圖片,所以把之前網絡上找到圖片直接保存在python這個代碼的文件夾下
當然也可以再調用兩個包,做成「截圖,保存,識別文字,三個步驟一體的python小工具」,此處不做展開。
最終修改完成的代碼如下:
from aip import AipOcr # 要先完成 pip install baidu-aip
#""" 你的 APPID AK SK """
APP_ID = '你的APP_ID'
API_KEY = '你的API_KEY'
SECRET_KEY = '你的SECRET_KEY'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
while 1:
#""" 讀取圖片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('2020vote.jpg')
#""" 調用通用文字識別(高精度版) """
client.basicAccurate(image);
message = client.basicAccurate(image)
message_result = message['words_result']
for i in message_result:
print(i['words'])
break
第五步:數據清洗
此處數據量不大,把獲取的數據放在excel裡面清洗後,得到格式統一的表。
第六步:數據分析
有清洗乾淨的完整數據之後,我們開始探索分析,這裡用一種簡單又低成本的方式:Power BI
為了便於分析,再載入一張年份表和一張黨派表
全部載入後,在Power BI裡面做一個簡單建模
先做個選票地圖看看
看著做完的地圖,似乎發現了些什麼!
首先,氣泡大小代表州的票數,雖然每年根據人口數量相應票數有變化,但是大體基本一致。
其次,這三張圖,看著很相似,顏色的分布變化不大。也就是說,每年都有一些固定支持共和黨或者固定支持民主黨的州。
最後,有少部分州,是每年支持的黨派都不一樣。
這部分的結論是:雖然每次選總統是兩個人競選,但其實支持他們的人,很多是出於這些人所在的黨派。
再去探索一下票數
可以看出每個不同的州,票數相差很遠,有約20%左右的州,佔到總票數一半以上。也就是以下地區可投選票的數量較多
這部分結論是:儘量去爭取上圖的州,獲勝機會大。
第七步:得出結論
最後總結數據分析結論如下:
1、有部分州,每年都一定選擇共和黨或者一定選擇民主黨,剩下小部分州會在兩黨之間搖擺,也就是說,美國總統大選,候選人背後代表的黨派影響力,大於他們個人的影響力。
2、從競選策略上來說,每年可以「不用太關心」一定會投票給自己黨派的州,應該把重點放在「搖擺州」上。而「搖擺州」應該先從上圖中佔票數多的州開始爭取,然後再根據各州的票數佔比,區分輕重緩急依次做競選攻略。
總結
做了一次完整數據分析,讓我們回顧整個步驟:
第一步:確定分析目的
第二步:理解業務
第三步:確定研究指標
第四步:尋找原始數據
第五步:數據清洗
第六步:數據分析
第七步:總結結論
以上就是一次標準又簡潔的數據分析全過程演示。然而,在實際的業務分析中,一般在第七步得到了結論後還會回到第一步分析的目的,去與業務或者運營人員溝通,反饋結論,比如是否有異常、異常原因、下一步動作等事宜,這也就使數據分析形成了「閉環」。然後相關業務人員再次提出疑問去確立新的分析目標,通過如此反覆的迭代優化及分析,可提高營銷活動有效性,提高投資回報率等等數據指標……「閉環」其實就是「揚長避短」,讓數據引導動作到更有價值的地方,實現資源配置最大化,也就是所謂的數據驅動業務。
總而言之,數據分析的有趣之處就是,當你把自己想成福爾摩斯的話,那數據背後一定存在真相。也由此可見,數據分析的應用範圍很廣,在各行各業都可以滲透,為什麼可以滲透?那是因為各行各業都離不開數字,只要有數字的地方,就有數據分析的用武之地;且數據分析的內容也可以很深,從加減乘除算數運算,到建模回歸機器學習,都已經廣泛運用起來了;從上面的分析看,數據分析的工具那更是數不勝數,爬蟲、清洗、可視化、資料庫等,只有你想不到的,沒有市場上滿足不了需求的。數據分析就像一雙翅膀能讓你飛得更遠,希望大家通過這個具體的例子,學會用數據分析賦能到你工作生活的方方面面。
- DataCastle -