數據分析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 的使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章