Python教學欄位介紹概述資料。
推薦(免費):Python教學
文章目錄
#一、入門資料分析
1.大數據時代的基本面
大數據產業發展現狀:
現在數據已經呈現出了爆炸性的成長,每一分鐘可能就會有:
在大數據時代,出現了三大變化:
舉一個典型的例子:
男士到超市買尿布會順帶買一些啤酒,透過大數據分析出的結果促使超市在尿布的貨架附近放一些啤酒,從而增大銷量,買尿布與買啤酒之間沒有因果關係,但是存在著某種相關關係。
國內大數據應用狀況如下(來自CSDN):
可以看到,大數據的應用程式已經具有一定規模,但是還有很大的發展空間。
人才方面的需求主要包括:
額外價值的服務。
2.資料分析師職業前景
#資料分析師需要解決的問題: 在大數據時代,更需要解讀數據的能力。
Q:烤箱的產能有限,該選擇生產哪些種類的麵包?
A:列出最受歡迎的幾種麵包,優先生產
明星商品。 關鍵在於找出明星商品,這需要統計出麵包的總營業額,再算出每種麵包佔總營業額的相對比例,優先生產能囊括七成營業額的產品組合。這會用到統計的次數分配表和直方圖,此種分析法也稱為ABC分析法,如下:
統計並不是分析數據就好了,從分析的結果推測該如何影響顧客的行為,並且將之擬定為具體的
商業計劃,並據此行動才是關鍵。 Q:想在網路上販售麵包,哪一種廣告比較有效?
A:寫出兩種文案,分別廣告一段時間看看成效如何。
要比較廣告成效,最好的方法是用統計的
隨機對照實驗,讓兩種廣告隨機出現,一段時間後,觀察哪種廣告的效果比較好,再大範圍運用效果比較好的廣告。
發現結果以及形成結果的原因之間的關係非常重要。
Q:怎麼從麵包判斷麵包師傅有沒有偷工減料?
A:抽查幾個麵包,秤看重量差距有沒有過大。
你需要先知道麵包的平均重量,再對麵包進行抽樣,看看麵包的重量是否呈現常態分佈的鐘形曲線?若是偏離曲線,就可能暗示麵包品管有問題。如下:
一個好的數據分析師是一個好的產品規劃者和行業的領跑者;
在IT企業,優秀的數據分析師很有希望成為公司的高層。
資料分析師的工作流程如下:
資料分析師的三大任務:
多變數微積分和線性代數
資料科學家的思考
資料驅動
問題解決
資料分析師要求的三大能力:迴歸分析法
為高層提供郵件和報表
網路分析
KPI指標監控
各種週期性報表
針對某一業務問題做分析報告
科學計算
社區,採用python進行科學計算的趨勢也越來越明顯。
(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系統
./configure
腳本make
#make install
訪問http://www.python.org/download/
Python相關安裝套件
中下載即可。
下載後,請雙擊下載包,進入Python安裝精靈,安裝非常簡單,只需要使用預設的設定一直點擊(3)Mac系統
自帶python 2.7,可以執行brew install python安裝新版本。
3.環境變數設定
Windows系統需要設定環境變數。和
XXX\PythonXXX\Scripts命令列新增
CMD中分別執行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輸入)
#5.整合開發環境選擇##Python有很多編輯器,包括PyCharm等,這裡選擇PyCharm: PyCharm是由JetBrains打造的Python IDE,支Mac OS、Windows、Linux系統。 包含調試、語法高亮、Project管理、程式碼跳轉
、智慧提示
、自動完成、單元測試、版本控制等功能。
最後依序點選下一步、安裝完成後,點選Win鍵(Windows系統下)可以看到最近新增或套用清單A下如圖:
此時可點選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指令 |
conda –h | |
#基於python3.6版本建立名為python36的環境 | |
啟動此環境 | |
#查看python版本 | python -V |
#退出目前環境
#刪除環境 | |
#查看所有安裝的環境 | |
#conda的套件管理常見指令如下: |
套件管理指令意義
##安裝matplotlib | conda install matplotlib |
查看已安裝的套件 | conda list |
四、Jupyter Notebook
1.Jupyter Notebook基本介绍
Jupyter Notebook(此前被称为IPython notebook)是一个交互式笔记本,支持运行40多种编程语言。
在开始使用notebook之前,需要先安装该库:
(1)在命令行中执行pip install jupyter
来安装;
(2)安装Anaconda后自带Jupyter Notebook。
在命令行中执行jupyter notebook
,就会在当前目录下启动Jupyter服务并使用默认浏览器打开页面,还可以复制链接到其他浏览器中打开,如下:
可以看到,notebook界面由以下部分组成:
(1)notebook名称;
(2)主工具栏,提供了保存、导出、重载notebook,以及重启内核等选项;
(3)notebook主要区域,包含了notebook的内容编辑区。
2.Jupyter Notebook的使用
在Jupyter页面下方的主要区域,由被称为单元格的部分组成。每个notebook由多个单元格构成,而每个单元格又可以有不同的用途。
上图中看到的是一个代码单元格(code cell),以[ ]
开头,在这种类型的单元格中,可以输入任意代码并执行。
例如,输入1 + 2
并按下Shift + Enter
,单元格中的代码就会被计算,光标也会被移动到一个新的单元格中。
如果想新建一个notebook,只需要点击New,选择希望启动的notebook类型即可。
简单使用示意如下:
可以看到,notebook可以修改之前的单元格,对其重新计算,这样就可以更新整个文档了。如果你不想重新运行整个脚本,只想用不同的参数测试某个程式的话,这个特性显得尤其强大。
不过,也可以重新计算整个notebook,只要点击Cell -> Run all
即可。
再测试标题和其他代码如下:
可以看到,在顶部添加了一个notebook的标题,还可以执行for循环等语句。
3.Jupyter中使用Python
Jupyter测试Python变量和数据类型如下:
测试Python函数如下:
测试Python模块如下:
可以看到,在执行出错时,也会抛出异常。
测试数据读写如下:
数据读写很重要,因为进行数据分析时必须先读取数据,进行数据处理后也要进行保存。
4.数据交互案例
加载csv数据,处理数据,保存到MongoDB数据库
有csv文件Python資料分析實戰之 概述資料分析.csv和Python資料分析實戰之 概述資料分析.csv,分别是商品数据和用户评分数据,如下:
如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群 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查看数据库如下:
显然,保存数据成功。
使用Jupyter处理商铺数据
待处理的数据是商铺数据,如下:
包括名称、评论数、价格、地址、评分列表等,其中评论数、价格和评分均不规则、需要进行数据清洗。
如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群 963624318 在群文件夹Python数据分析实战中下载即可。
Jupyter中处理如下:
可以看到,最后得到了经过清洗后的规则数据。
完整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中文網其他相關文章!