首頁  >  文章  >  後端開發  >  Python資料分析實戰之 概述資料分析

Python資料分析實戰之 概述資料分析

coldplay.xixi
coldplay.xixi轉載
2021-01-06 09:48:392055瀏覽

Python教學欄位介紹概述資料。

Python資料分析實戰之 概述資料分析

推薦(免費):Python教學

文章目錄

  • 一、入門資料分析
    • 1.大數據時代的基本面
    • #2.資料分析師職業前景
    • 3.成為資料分析師之路
  • 二、Python的安裝與環境配置
    • 1.Python版本
    • 2.不同系統安裝Python
    • 3.環境變數配置
    • 4.安裝pip
    • #5.整合開發環境選擇
  • 三、Anaconda的介紹與安裝
    • 1.Anaconda是什麼
    • 2.下載與安裝Anaconda
    • 3.conda工具的介紹與套件管理
  • 四、Jupyter Notebook
    • #1.Jupyter Notebook基本介紹
    • 2.Jupyter Notebook的使用
    • 3.Jupyter中使用Python
    • 4.資料互動案例
      • 載入csv數據,處理數據,儲存到MongoDB資料庫
      • 使用Jupyter處理商舖資料

#一、入門資料分析

1.大數據時代的基本面

大數據產業發展現狀:
現在數據已經呈現出了爆炸性的成長,每一分鐘可能就會有:

  • 13000 個iPhone應用程式下載
  • Twitter上發表98000 新微博
  • 發出1.68億張Email
  • #淘寶雙十一10680個新訂單
  • 12306出票1840 張

在大數據時代,出現了三大變化:

  • 從隨機樣本到全量資料
  • 從精確性到混雜性
  • 從因果關係到相關關係

舉一個典型的例子:
男士到超市買尿布會順帶買一些啤酒,透過大數據分析出的結果促使超市在尿布的貨架附近放一些啤酒,從而增大銷量,買尿布與買啤酒之間沒有因果關係,但是存在著某種相關關係。

國內大數據應用狀況如下(來自CSDN):
Python資料分析實戰之 概述資料分析

可以看到,大數據的應用程式已經具有一定規模,但是還有很大的發展空間。

人才方面的需求主要包括:

  • 資料分析師
    • 統計分析
    • 預測分析
    • ##流程最佳化
  • 大數據工程師
    • 平台開發
    • 應用程式開發
    • 技術支援
  • 資料架構師
    • 業務理解
    • 應用部署
    • 架構設計
#之所以要學習資料分析,是因為數據正變得越來越常見和廉價,分析可以為數據提供稀缺且附帶

額外價值的服務。

2.資料分析師職業前景

#資料分析師需要解決的問題:

  • 預估需求、分配產能

    在大數據時代,更需要解讀數據的能力。
    Q:烤箱的產能有限,該選擇生產哪些種類的麵包?
    A:列出最受歡迎的幾種麵包,優先生產
    明星商品 關鍵在於找出明星商品,這需要統計出麵包的總營業額,再算出每種麵包佔總營業額的相對比例,優先生產能囊括七成營業額的產品組合。這會用到統計的次數分配表和直方圖,此種分析法也稱為ABC分析法,如下:

    Python資料分析實戰之 概述資料分析

  • 評估行銷方案成效

    統計並不是分析數據就好了,從分析的結果推測該如何影響顧客的行為,並且將之擬定為具體的
    商業計劃,並據此行動才是關鍵。 Q:想在網路上販售麵包,哪一種廣告比較有效?
    A:寫出兩種文案,分別廣告一段時間看看成效如何。
    要比較廣告成效,最好的方法是用統計的
    隨機對照實驗,讓兩種廣告隨機出現,一段時間後,觀察哪種廣告的效果比較好,再大範圍運用效果比較好的廣告。

  • 產品品管

    發現結果以及形成結果的原因之間的關係非常重要。
    Q:怎麼從麵包判斷麵包師傅有沒有偷工減料?
    A:抽查幾個麵包,秤看重量差距有沒有過大。
    你需要先知道麵包的平均重量,再對麵包進行抽樣,看看麵包的重量是否呈現常態分佈的鐘形曲線?若是偏離曲線,就可能暗示麵包品管有問題。如下:

    Python資料分析實戰之 概述資料分析

一個好的數據分析師是一個好的產品規劃者和行業的領跑者
在IT企業,優秀的數據分析師很有希望成為公司的高層。

資料分析師的工作流程如下:
Python資料分析實戰之 概述資料分析

資料分析師的三大任務:

  • 分析歷史

    • 預測未來
  • 優化選擇
  • 資料分析師要求的8項技能:
  • 統計量
  • 統計檢定、P值、分佈、估計
    • 基本工具
    • Python
    • SQL

多變數微積分和線性代數

    資料整理
  • 資料視覺化
  • 軟體工程
  • 機器學習

資料科學家的思考
Python資料分析實戰之 概述資料分析資料驅動

問題解決

資料分析師要求的三大能力:
  • 統計基礎與分析工具應用
  • 電腦編碼能力
  • 特定應用領域或產業的知識
#典型的資料分析師的成長歷程:

  • #3.成為資料分析師之路
  • 成為資料分析師的自我修養:
    • 敏感
    • 探究
        #細緻
      • 務實
      • 資料分析師需要具備的技能如下:
      • 熟悉Excel資料處理
      • 資料敏感度較強
      • 熟悉公司業務與產業知識
      • 掌握資料分析方法
      基本分析方法
    • 比較分析法
        分組分析法
      • 交叉分析法
      • #結構分析法
      • 漏斗圖分析法
      • 綜合評估分析法
      • 因素分析法
      • 矩陣關聯分析
      高階分析方法
  • 相關分析法

迴歸分析法

    聚類分析法
    • #判別分析法
    • 主成分分析法
    • 因子分析法
    • 對應分析法
    • 時間序列
  • 在不同產業資料分析從業人員的工作內容與職責:
    • 從事資料分析的工作
    • 學做日報
    • 日銷、庫存類別的表格
  • 產品銷售預測
    • 庫存計算與預警
    • 流量分析相關表
    • 複盤
    • ##資料分析挖掘工作人員
    給產品最佳化提供資料支援
驗證產品改進效果

為高層提供郵件和報表


網路分析

KPI指標監控
各種週期性報表
針對某一業務問題做分析報告

    針對業務進行線下建模和分析

  • ##資料分析很重要的學科基礎是數學,但是數學不好也沒關係,可以用
  • Python
  • 來幫助學習:
  • Python不只是一門程式語言,而且是資料探勘機器學習等技術的基礎,方便建立自動化的工作流程;
  • Python入門不難,它對數學要求並不是太高,重要的是需要知道如何用語言表達一個演算法邏輯;
  • Python有很多封裝好的工具庫和指令,需要做的是用哪些數學方法解決一個問題,並且建構出來。
  • 要快速入門Python數據分析,就要使用好Python相關的工具包:
(1)Python最大的特點是擁有一個巨大而活躍的

科學計算

社區,採用python進行科學計算的趨勢也越來越明顯。
    (2)由於Python有不斷改良的函式庫,使其成為資料處理任務的一大代替方案,結合其在通用程式設計方面的強大實力,完全可以只是用Python這種語言去建構以資料為中心的應用程序,其中:
  • 常用資料分析庫
  • Numpy
  • Scipy
  • Pandas
matplotlib

  • 常用進階資料分析函式庫
  • nltk
  • igraph
scikit-learn

(3)作為科學計算平台,Python的能夠輕鬆整合C、C 以及Fortran程式碼。 資料分析的準備工作:

######了解資料######資料清洗與初步分析######繪圖與視覺化######數據聚合與分組處理######資料探勘########資料分析與資料探勘的常用演算法:########線性迴歸#####時間序列分析######分類演算法######聚類演算法######降維演算法##########學習與從事資料分析工作的方法為:###### ####勤思考######多動手######多重總結#############二、Python的安裝與環境配置######## ####1.Python版本#######

Python分為3.X和2.X兩個大版本。
Python的3.0版本,常被稱為Python 3000,或簡稱Py3k。相對於Python的早期版本,這是一個較大的升級。
為了不帶入過多的累贅,Python 3.X在設計的時候沒有考慮向下相容,許多針對早期Python版本設計的程式都無法在Python 3.X上正常執行。
大多數第三方函式庫都正在努力地相容Python 3.X版本。

2.不同系統安裝Python

(1)Unix & Linux系統

  • 造訪http://www.python.org /download/
  • 選擇適用於Unix/Linux的源碼壓縮包
  • #下載並解壓縮壓縮包
  • 如果你需要自訂一些選項,修改Modules/Setup
  • 執行./configure腳本
  • make
  • #make install


  • Python資料分析實戰之 概述資料分析



  • (2)Window系統訪問http://www.python.org/download/
  • 在下載清單中選擇Window平台安裝套件
  • 由於官網下載很緩慢,因此我已經將Python各版本的安裝包下載整理好了,可以直接點擊加QQ群
    963624318 在群組資料夾Python相關安裝套件中下載即可。 下載後,請雙擊下載包,進入Python安裝精靈,安裝非常簡單,只需要使用預設的設定一直點擊
    下一步Python資料分析實戰之 概述資料分析直到安裝完成即可。

(3)Mac系統

自帶python 2.7,可以執行

brew install python安裝新版本。

3.環境變數設定

Windows系統需要設定環境變數。
  • 如果在安裝Python時沒有選擇添加環境變量,則需要手動添加,需要將安裝Python的路徑
    XXX\PythonXXXXXX\PythonXXX\Scripts
  • 添加到環境變量,有兩種方式:

  • 命令列新增 CMD中分別執行
  • path=%path%;XXX\PythonXXX

path=% path%;XXX\PythonXXX\Scripts即可。

在系統設定中加入

右鍵計算機→ 屬性→ 進階系統設定→ 系統屬性→ 環境變數→ 雙擊path → 新增
XXX\PythonXXX
XXX\PythonXXX\ Scripts安裝路徑,如下:

最後依序點選確認退出即可。

4.安裝pip

pip是Python中的套件安裝與管理工具,在安裝Python時可以選擇安裝pip,在Python 2 >=2.7. 9或Python 3 >=3.4中自備。

如果沒有安裝pip,可以透過指令安裝:

Linux或Macpip install -U pip

##Windows( cmd輸入)

python -m pip install -U pip

#5.整合開發環境選擇##Python有很多編輯器,包括PyCharm等,這裡選擇PyCharm: PyCharm是由JetBrains打造的Python IDE,支Mac OS、Windows、Linux系統。 包含Python資料分析實戰之 概述資料分析調試、語法高亮、Project管理、程式碼跳轉

智慧提示
、自動完成、單元測試、版本控制等功能。 安装Anaconda 选择环境变量

可以在https://www.jetbrains.com/pycharm/download/選擇合適的版本進行下載安裝即可。 #########三、Anaconda的介紹與安裝############1.Anaconda是什麼#########Anaconda是一個可用來###科學計算###的Python發行版,支援Linux、Mac、Windows系統,內建了常用的科學計算庫。 ### 它解決了官方Python的兩大痛點:### (1)提供了套件管理功能,Windows平台安裝第三方套件經常失敗的場景得以解決;### (2)提供環境管理的功能,功能類似virtualenv,解決了多版本Python並存、切換的問題。 #########2.下載並安裝Anaconda#########直接在官網https://www.anaconda.com/products/inpidual下載安裝包,選擇下載####Python3 .8###的安裝包###個人版###即可,但是官網下載速度較慢,因此我已經將Python3.8對應的Anaconda安裝包下載整理好了,可以直接點擊加QQ群 ###963624318 在群組資料夾###Python相關安裝套件###中下載即可。 ######下載完成後直接安裝,需要注意,點擊過程中會出現新增環境變數的提示,需要勾選,如下:##########

最後依序點選下一步、安裝完成後,點選Win鍵(Windows系統下)可以看到最近新增或套用清單A下如圖:
启动栏 最近添加
启动栏 A

此時可點選Anaconda Navigator,如下:
Anaconda Navigator

#可以看到環境為Python 3.8.3,Anaconda所建立的基礎環境名稱為base,也是預設環境,也可以看到預設安裝的庫。

再開啟Anaconda命令列工具Anaconda Powershell Prompt,輸入python -V,也列印Python 3.8.3

也可以透過指令建立新的conda環境,如conda create --name py27 python=2.7執行後即創建了一個名為py27的Python版本為2.7的conda環境。

啟動環境執行指令conda activate py27,停用使用指令conda deactivate

可以在命令列中執行conda list查看已經安裝的庫,如下:

# packages in environment at E:\Anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py38_0
alabaster                 0.7.12                     py_0
anaconda                  2020.07                  py38_0
anaconda-client           1.7.2                    py38_0
anaconda-navigator        1.9.12                   py38_0
...
zlib                      1.2.11               h62dcd97_4
zope                      1.0                      py38_1
zope.event                4.4                      py38_0
zope.interface            4.7.1            py38he774522_0
zstd                      1.4.5                ha9fde0e_0

3.conda工具的介紹和套件管理

conda是Anaconda下用於套件管理環境管理的工具,功能上類似pip和virtualenv的組合,conda的環境管理與virtualenv基本上是類似的操作。
安裝成功後conda會預設加入到環境變數中,因此可直接在命令列視窗執行conda指令。

常見的conda指令與意義如下:

#指令意義conda指令conda –h查看幫助#基於python3.6版本建立名為python36的環境conda create - -name python36 python=3.6啟動此環境activate python36(Windows)、source activate python36(linux/mac)#查看python版本python -V
指令意義 conda指令

#退出目前環境

deactivate python36#刪除環境conda remove -n py27 --all#查看所有安裝的環境##conda info -e#conda的套件管理常見指令如下:

套件管理指令意義

套件管理指令
##安裝matplotlib conda install matplotlib
查看已安裝的套件 conda list
套件更新######conda update matplotlib############刪除套件######conda remove matplotlib######## ########在conda中,###anything is a package一切皆是包###,conda本身可以看作是一個包,python環境可以看作是一個包,anaconda也可以看作是一個包,因此除了普通的第三方包支援更新之外,這3個包也支援如下命令:###############操作#####命令## ################更新conda本身######conda update conda############更新anaconda應用程式#######conda update anaconda############更新python,假設當前python環境是3.8.1,而最新版本是3.8.2,那麼就會升級到3.8.2######conda update python#############

四、Jupyter Notebook

1.Jupyter Notebook基本介绍

Jupyter Notebook(此前被称为IPython notebook)是一个交互式笔记本,支持运行40多种编程语言。

在开始使用notebook之前,需要先安装该库:
(1)在命令行中执行pip install jupyter来安装;
(2)安装Anaconda后自带Jupyter Notebook。

在命令行中执行jupyter notebook,就会在当前目录下启动Jupyter服务并使用默认浏览器打开页面,还可以复制链接到其他浏览器中打开,如下:
jupyter 界面

可以看到,notebook界面由以下部分组成:
(1)notebook名称;
(2)主工具栏,提供了保存、导出、重载notebook,以及重启内核等选项;
(3)notebook主要区域,包含了notebook的内容编辑区。

2.Jupyter Notebook的使用

在Jupyter页面下方的主要区域,由被称为单元格的部分组成。每个notebook由多个单元格构成,而每个单元格又可以有不同的用途。
上图中看到的是一个代码单元格(code cell),以[ ]开头,在这种类型的单元格中,可以输入任意代码并执行。
例如,输入1 + 2并按下Shift + Enter,单元格中的代码就会被计算,光标也会被移动到一个新的单元格中。

如果想新建一个notebook,只需要点击New,选择希望启动的notebook类型即可。

简单使用示意如下:
python da jupyter simple

可以看到,notebook可以修改之前的单元格,对其重新计算,这样就可以更新整个文档了。如果你不想重新运行整个脚本,只想用不同的参数测试某个程式的话,这个特性显得尤其强大。
不过,也可以重新计算整个notebook,只要点击Cell -> Run all即可。

再测试标题和其他代码如下:
python da jupyter for head

可以看到,在顶部添加了一个notebook的标题,还可以执行for循环等语句。

3.Jupyter中使用Python

Jupyter测试Python变量和数据类型如下:
python da jupyter variable data type

测试Python函数如下:
python da jupyter function

测试Python模块如下:
python da jupyter module package

可以看到,在执行出错时,也会抛出异常。

测试数据读写如下:
python da jupyter data io

数据读写很重要,因为进行数据分析时必须先读取数据,进行数据处理后也要进行保存

4.数据交互案例

加载csv数据,处理数据,保存到MongoDB数据库

有csv文件Python資料分析實戰之 概述資料分析.csv和Python資料分析實戰之 概述資料分析.csv,分别是商品数据和用户评分数据,如下:
Python資料分析實戰之 概述資料分析
Python資料分析實戰之 概述資料分析

如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群 Python資料分析實戰之 概述資料分析963624318 在群文件夹Python数据分析实战中下载即可。

现在需要通过Python将其读取出来,并将指定的字段保存到MongoDB中,需要在Anaconda中执行命令conda install pymongo安装pymongo。

Python代码如下:

import pymongoclass Product:
    def __init__(self,productId:int ,name, imageUrl, categories, tags):
        self.productId = productId
        self.name = name
        self.imageUrl = imageUrl
        self.categories = categories
        self.tags = tags    def __str__(self) -> str:
        return self.productId +'^' + self.name +'^' + self.imageUrl +'^' + self.categories +'^' + self.tagsclass Rating:
    def __init__(self, userId:int, productId:int, score:float, timestamp:int):
        self.userId = userId
        self.productId = productId
        self.score = score
        self.timestamp = timestamp    def __str__(self) -> str:
        return self.userId +'^' + self.productId +'^' + self.score +'^' + self.timestampif __name__ == '__main__':
    myclient = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
    mydb = myclient["goods-users"]
    # val attr = item.split("\\^")
    # // 转换成Product
    # Product(attr(0).toInt, attr(1).trim, attr(4).trim, attr(5).trim, attr(6).trim)

    Python資料分析實戰之 概述資料分析 = mydb['Python資料分析實戰之 概述資料分析']
    with open('Python資料分析實戰之 概述資料分析.csv', 'r',encoding='UTF-8') as f:
        item = f.readline()
        while item:
            attr = item.split('^')
            product = Product(int(attr[0]), attr[1].strip(), attr[4].strip(), attr[5].strip(), attr[6].strip())
            Python資料分析實戰之 概述資料分析.insert_one(product.__dict__)
            # print(product)
            # print(json.dumps(obj=product.__dict__,ensure_ascii=False))
            item = f.readline()

    # val attr = item.split(",")
    # Rating(attr(0).toInt, attr(1).toInt, attr(2).toDouble, attr(3).toInt)
    Python資料分析實戰之 概述資料分析 = mydb['Python資料分析實戰之 概述資料分析']
    with open('Python資料分析實戰之 概述資料分析.csv', 'r',encoding='UTF-8') as f:
        item = f.readline()
        while item:
            attr = item.split(',')
            rating = Rating(int(attr[0]), int(attr[1].strip()), float(attr[2].strip()), int(attr[3].strip()))
            Python資料分析實戰之 概述資料分析.insert_one(rating.__dict__)
            # print(rating)
            item = f.readline()

在启动MongoDB服务后,运行Python代码,运行完成后,再通过Robo 3T查看数据库如下:
robo 3T

显然,保存数据成功。

使用Jupyter处理商铺数据

待处理的数据是商铺数据,如下:
shop data

包括名称、评论数、价格、地址、评分列表等,其中评论数、价格和评分均不规则、需要进行数据清洗。

如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群 Python資料分析實戰之 概述資料分析963624318 在群文件夹Python数据分析实战中下载即可。

Jupyter中处理如下:
python da jupyter shop data

可以看到,最后得到了经过清洗后的规则数据。

完整Python代码如下:

# 数据读取f = open('商铺数据.csv', 'r', encoding='utf8')for i in f.readlines()[1:15]:
    print(i.split(','))# 创建comment、price、commentlist清洗函数def fcomment(s):
    '''comment清洗函数:用空格分段,选取结果list的第一个为点评数,并且转化为整型'''
    if '条' in s:
        return int(s.split(' ')[0])
    else:
        return '缺失数据'def fprice(s):
    '''price清洗函数:用¥分段,选取结果list的最后一个为人均价格,并且转化为浮点型'''
    if '¥' in s:
        return float(s.split('¥')[-1])
    else:
        return '缺失数据'def fcommentl(s):
    '''commentlist清洗函数:用空格分段,分别清洗出质量、环境及服务数据,并转化为浮点型'''
    if ' ' in s:
        quality = float(s.split('                                ')[0][2:])
        environment = float(s.split('                                ')[1][2:])
        service = float(s.split('                                ')[2][2:-1])
        return [quality, environment, service]
    else:
        return '缺失数据'# 数据处理清洗datalist = []  # 创建空列表f.seek(0)n = 0  # 创建计数变量for i in f.readlines():
    data = i.split(',')
    # print(data)
    classify = data[0]  # 提取分类
    name = data[1]  # 提取店铺名称
    comment_count = fcomment(data[2])  # 提取评论数量
    star = data[3]  # 提取星级
    price = fprice(data[4])  # 提取人均
    address = data[5]  # 提取地址
    quality = fcommentl(data[6])[0]  # 提取质量评分
    env = fcommentl(data[6])[1]  # 提取环境评分
    service = fcommentl(data[6])[2]  # 提取服务评分
    if '缺失数据' not in [comment_count, price, quality]:  # 用于判断是否有数据缺失
        n += 1
        data_re = [['classify', classify],
                   ['name', name],
                   ['comment_count', comment_count],
                   ['star', star],
                   ['price', price],
                   ['address', address],
                   ['quality', quality],
                   ['environment', env],
                   ['service', service]]
        datalist.append(dict(data_re))  # 字典生成,并存入列表datalist
        print('成功加载%i条数据' % n)
    else:
        continueprint(datalist)print('总共加载%i条数据' % n)f.close()

更多编程相关知识,请访问:编程教学!!

以上是Python資料分析實戰之 概述資料分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除