数据分析2 - 基础篇
數據分析實戰.基礎篇
06 | 學數據分析要掌握哪些基本概念?
商業智能 BI、數據倉庫 DW、數據挖掘 DM 三者之間的關系
開頭中的百貨商店利用數據預測用戶購物行為屬于商業智能,他們積累的顧客的消費行為習慣會存儲在數據倉庫中,通過對個體進行消費行為分析總結出來的規律屬于數據挖掘。
KDD
Knowledge Discovery in Databas
數據挖掘的流程
07 | 用戶畫像:標簽化就是數據的抽象能力
用戶畫像的準則
最后,當你有了用戶畫像,可以為企業帶來什么業務價值呢?
我們可以從用戶生命周期的三個階段來劃分業務價值,包括:獲客、粘客和留客。
所以這個標簽化的流程,就是通過數據層的“事實標簽”,在算法層進行計算,打上“模型標簽”的分類結果,最后指導業務層,得出“預測標簽”。
美團外賣的用戶畫像該如何設計?
用戶的唯一標識:以用戶的注冊手機號為標準
- 用戶標簽:性別、年齡、家鄉、居住地、收貨地址、婚姻、寶寶信息、通過何種渠道進行的注冊。
- 消費標簽:餐飲口味、消費均價、團購等級、預定使用等級、排隊使用等級、外賣等級。
- 行為標簽:點外賣時間段、使用頻次、平均點餐用時、訪問路徑。
- 內容分析:基于用戶平時瀏覽的內容進行統計,包括餐飲口味、優惠敏感度等。
羊肉串店的用戶畫像
唯一ID確認:可以根據付款人、付款賬號等信息確認
- 用戶標簽:性別、年齡、家鄉
- 消費標簽:餐飲口味、消費均價、預定使用等級、排隊使用等級
- 行為標簽:光顧時間、光顧頻率、光顧的地理位置(連鎖店)、平均點餐時間、對優惠券的敏感程度
- 內容標簽:菜品種類、菜品數量、餐飲口味
朋友圈畫像
- 標簽有:家人、朋友、同學、同事、陌生人
需要統計的種類有:
- 用戶標簽:性別、年齡、地區、通過何種方式添加
- 消費標簽:點贊內容、參與的活動等
- 行為標簽:點贊頻率,點贊時間、聊天時間、聊天頻率、聊天時長
- 內容標簽:點贊內容,聊天內容、發布朋友圈內容、點贊的文章,關注的公眾號
08 | 數據采集:如何自動化采集數據?
數據源
如何使用爬蟲做抓取
在 Python 爬蟲中,基本上會經歷三個過程。
- 使用 Requests 爬取內容。我們可以使用 Requests 庫來抓取網頁信息。Requests 庫可以說是 Python 爬蟲的利器,也就是 Python 的 HTTP 庫,通過這個庫爬取網頁中的數據,非常方便,可以幫我們節約大量的時間。
- 使用 XPath 解析內容。XPath 是 XML Path 的縮寫,也就是 XML 路徑語言。它是一種用來確定 XML 文檔中某部分位置的語言,在開發中經常用來當作小型查詢語言。XPath 可以通過元素和屬性進行位置索引。
- 使用 Pandas 保存數據。Pandas 是讓數據分析工作變得更加簡單的高級數據結構,我們可以用 Pandas 保存爬取的數據。最后通過 Pandas 再寫入到 XLS 或者 MySQL 等數據庫中。
Requests、XPath、Pandas 是 Python 的三個利器。當然做 Python 爬蟲還有很多利器,比如 Selenium,PhantomJS,或者用 Puppteteer 這種無頭模式。
三款常用的抓取工具
- 火車采集器
- 八爪魚
- 集搜客
埋點是什么
- 埋點就是在有需要的位置采集相應的信息,進行上報。
- 埋點就是在你需要統計數據的地方植入統計代碼,當然植入代碼可以自己寫,也可以使用第三方統計工具。
- 推薦你使用第三方的工具,比如友盟、Google Analysis、Talkingdata 等
09丨數據采集:如何用八爪魚采集微博上的“D&G”評論
10丨Python爬蟲:如何自動化下載王祖賢海報?
爬蟲的流程
爬蟲實際上是用瀏覽器訪問的方式模擬了訪問網站的過程,整個過程包括三個階段:打開網頁、提取數據和保存數據。
- 在“打開網頁”這一步驟中,可以使用 Requests 訪問頁面,得到服務器返回給我們的數據,這里包括 HTML 頁面以及 JSON 數據。
- 在“提取數據”這一步驟中,主要用到了兩個工具。針對 HTML 頁面,可以使用 XPath 進行元素定位,提取數據;針對 JSON 數據,可以使用 JSON 進行解析。
- 在最后一步“保存數據”中,我們可以使用 Pandas 保存數據,最后導出 CSV 文件。
XPath 定位
舉例:
- xpath(‘node’) 選取了 node 節點的所有子節點;
- xpath(’/div’) 從根節點上選取 div 節點;
- xpath(’//div’) 選取所有的 div 節點;
- xpath(’./div’) 選取當前節點下的 div 節點;
- xpath(’…’) 回到上一個節點;
- xpath(’//@id’) 選取所有的 id 屬性;
- xpath(’//book[@id]’) 選取所有擁有名為 id 的屬性的 book 元素;
- xpath(’//book[@id=“abc”]’) 選取所有 book 元素,且這些 book 元素擁有 id= "abc"的屬性;
- xpath(’//book/title | //book/price’)選取 book 元素的所有 title 和 price 元素。
使用 XPath 定位,你會用到 Python 的一個解析庫 lxml。
//比如我們想要定位到 HTML 中的所有列表項目 from lxml import etree html = etree.HTML(html) result = html.xpath('//li')JSON 對象
// 這是一段將 JSON 格式轉換成 Python 對象的代碼import json jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; input = json.loads(jsonData) print input如何使用 JSON 數據自動下載王祖賢的海報
注意:如果爬取的頁面是動態頁面,就需要關注 XHR 數據。因為動態頁面的原理就是通過原生的 XHR 數據對象發出 HTTP 請求,得到服務器返回的數據后,再進行處理。XHR 會用于在后臺與服務器交換數據。
# coding:utf-8 import requests import json query = '王祖賢' ''' 下載圖片 ''' def download(src, id):dir = './' + str(id) + '.jpg'try:pic = requests.get(src, timeout=10)fp = open(dir, 'wb')fp.write(pic.content)fp.close()except requests.exceptions.ConnectionError:print('圖片無法下載')''' for 循環 請求全部的 url ''' for i in range(0, 22471, 20):url = 'https://www.douban.com/j/search_photo?q='+query+'&limit=20&start='+str(i)html = requests.get(url).text # 得到返回結果response = json.loads(html,encoding='utf-8') # 將 JSON 格式轉換成 Python 對象for image in response['images']:print(image['src']) # 查看當前下載的圖片網址download(image['src'], image['id']) # 下載一張圖片但有時候當我們直接用 Requests 獲取 HTML 的時候,發現想要的 XPath 并不存在。這是因為 HTML 還沒有加載完,因此你需要一個工具,來進行網頁加載的模擬,直到完成加載后再給你完整的 HTML。
在 Python 中,這個工具就是 Selenium 庫,使用方法如下:
from selenium import webdriver driver = webdriver.Chrome() driver.get(request_url)Selenium 是 Web 應用的測試工具,可以直接運行在瀏覽器中,它的原理是模擬用戶在進行操作,支持當前多種主流的瀏覽器。獲取訪問頁面的完整 HTML。
小結
問題
問:如果是需要用戶登陸后才能爬取的數據該怎么用python來實現呢?
答:你可以使用python+selenium的方式完成賬戶的自動登錄,因為selenium是個自動化測試的框架,使用selenium 的webdriver就可以模擬瀏覽器的行為。找到輸入用戶名密碼的地方,輸入相應的值,然后模擬點擊即可完成登錄(沒有驗證碼的情況下)
另外你也可以使用cookie來登錄網站,方法是你登錄網站時,先保存網站的cookie,然后用下次訪問的時候,加載之前保存的cookie,放到request headers中,這樣就不需要再登錄網站了
11 | 數據科學家80%時間都花費在了這些清洗任務上?
小結
12 | 數據集成:這些大號一共20億粉絲?
數據集成的兩種架構:ETL & ELT
ETL 工具
Kettle:Kettle 中文名稱叫水壺,該項目的目標是將各種數據放到一個壺里,然后以一種指定的格式流出。
Kettle 工具的使用:如何將文本文件的內容轉化到 MySQL 數據庫中
小結
13 | 數據變換:考試成績要求正態分布合理么?
14丨數據可視化:掌握數據領域的萬金油技能
商業智能分析
- Tableau
- PowerBI
- FineBI
可視化大屏類
- DataV
- FineReport
Web 渲染技術
Canvas、SVG 和 WebGL。
Canvas 和 SVG 是 HTML5 中主要的 2D 圖形技術,WebGL 是 3D 框架。
- Canvas 適用于位圖
- SVG 的中文是可縮放矢量圖形,它是使用 XML 格式來定義圖形的
- WebGL 是一種 3D 繪圖協議
可視化組件
Echarts、D3、Three.js 和 AntV。
編程語言
在 Python 里包括了眾多可視化庫,比如 Matplotlib、Seaborn、Bokeh、Plotly、Pyecharts、Mapbox 和 Geoplotlib。其中使用頻率最高,最需要掌握的就是 Matplotlib 和 Seaborn。
小結
15丨一次學會Python數據可視化的10種技能
16丨數據分析基礎篇答疑
Scrapy
Scrapy 是一個 Python 的爬蟲框架,它依賴的工具比較多,所以在 pip install 的時候,會安裝多個工具包。scrapy 本身包括了爬取、處理、存儲等工具。在 scrapy 中,有一些組件是提供給你的,需要你針對具體任務進行編寫。比如在 item.py 對抓取的內容進行定義,在 spider.py 中編寫爬蟲,在 pipeline.py 中對抓取的內容進行存儲,可以保存為 csv 等格式。這里不具體講解 scrapy 的使用。
總結
以上是生活随笔為你收集整理的数据分析2 - 基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2591):刷新页面vuex消
- 下一篇: 工作199:获取接口token