用Python做數據分析
開門見山,繼續在數據分析這條道路上前進。
Numpy用於數學計算,如矩陣計算;pandas基於numpy數據分析工具,為了解決數據分析任務而創建的,提供了一套名為數據框的數據結構,方便對錶結構分析;mat:圖形資料庫,數據結果的可視化
(一)一維數據分析
Numpy——array——import numpy as np
Pandas——series——import Pandas as pd (功能更多)
numpy
用array定義一維數組:a=np.array([2,3,4,5])
功能:1統計功能mean(),std()等; 2向量運算:向量相加;乘以標量;3 數據格式必須一致
Pandas
用series定義一維數組
功能:1可以使用索引;2用iloc或者loc來獲取值;
3支持向量運算:通過索引來進行相加,如果有不對應的索引,相加後則會nan
那麼可以使用x.dropna()直接去掉;或者通過賦予值來計算x=x1.add(x2,file_value=0)
(二)二維數據分析
Numpy——array
Pandas——Dateframe (功能更多)
numpy
還是通過array(數組)
定義數組:每一行為一個數組用中括弧,用逗號分隔開,用括弧包裹住。
二維數組的行號和列號都是從0開始的;
mean()是按照整體來求平均值的;axis=1按行分組計算均值;axis=0按列行分組計算均值
pandas
用Dateframe(數據框);因為numpy的數據格式需要是一致的,但是實際生活中,一個表格中的數據格式是有很多種的,所以我們用數據框
優點:每一列都可以是不同的數據類型;有索引的功能,每行每列都可以有個索引值
定義一個有序的數據字典
是按每列來求平均值salesDf.mean()
#查詢第1行第2列的元素 salesDf.iloc[0,1]
#獲取第1行,:代表所有列 salesDf.iloc[0,:]
#獲取第1列,:代表所有行 salesDf.iloc[:,0]
用索引功能:
#查詢第1行第1列的元素 salesDf.loc[0,商品編碼]
#獲取第1行 salesDf.loc[0,:]
#獲取「商品名稱」這一列 salesDf.loc[:,商品名稱]
(三)數據框複雜查詢
(1)切片功能:
#通過列表來選擇某幾列的數據 salesDf[商品名稱,銷售數量]
#通過切片功能,獲取指定範圍的列 salesDf.loc[:,購葯時間:銷售數量]
(2)條件判斷:
#第1步:構建查詢條件 querySer=salesDf.loc[:,銷售數量]>1
#第2步:輸出查詢結果 salesDf.loc[querySer,:]
(3)查看數據集描述信息:describe (Df代表數據框的縮寫)
(三)數據分析過程
提出問題
寫代碼前,首先你要明白你想分析出什麼問題;
同時,可能需提前了解業務指標的含義,與需求方充分溝通業務指標的具體含義計算公式等
理解數據
採集數據——導入讀取數據——查看數據集信息,從整體上了解數據信息
【代碼】在導入數據的時候要注意路徑問題。否則會提示找不到文件,具體參考路徑問題:http://blog.csdn.net/Vincent_Xupt/article/details/72790693
數據清洗
1.選擇子集
因為原始數據太多,很多數據可能不需要。使用切片的冒號來獲取指定的範圍
2.列名重命名
先寫一個舊列名和新列名的數據字典;
然後使用資料庫的rename函數來命名;
最後加一個參數inplace=ture,原始數據也會跟著變動;如果是false,原始數據不變;
【代碼】colnameDict={"購葯時間":"銷售時間"}
salesDf.rename(columns=colnameDict,inplace="ture")
3.缺失數據處理
dropna函數詳細使用地址:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html
有2種方法:第一直接刪除,用dropna;第二如果缺失數據太多,則建立模型,進行插值辦法
例如:刪除列(銷售時間,社保卡號)中為空的行
註:subset存放刪除指定列的列表;how如何刪除數據;any只要有缺失值就刪除
4.類型轉換
- 4.1字元串轉換為數值:用astype來實現數據的轉化
- 4.2處理日期之字元串分割split:先定義一個函數,對一列進行分割;
- 4.3字元串轉化為日期:用to_datetime函數
5.排序
了解數據範圍,發現更多的有價值的信息
by:按那幾列排序
ascending=True 表示升序排列,
ascending=False表示降序排列
6.異常值處理
#描述指標:查看出「銷售數量」值不能小於0 代碼:salesDf.describe()
#刪除異常值:通過條件判斷篩選出數據
構建模型
對清洗後的數據進行分析,得出業務指標,或者用機器學習模型訓練指標
1.構建模型:業務指標-月均消費次數
月均消費次數=總消費次數/月份數,其中同一個人同一天購買的只算一次
總消費次數如下:
總月份數如下:
指標結果如下;
2.構建模型:業務指標-月均消費金額和客單價
月均消費金額=總消費金額 / 月份數
客單價=總消費金額 / 總消費次數
數據可視化
待續
推薦閱讀:
※python基礎篇之小白滾躺式入坑
※R語言實戰—02-創建數據集
※R語言實戰第八章:回歸
※小白python之路的開啟
※大數據有哪些工作崗位,日常工作內容是什麼,需要掌握哪些工具和技能
TAG:數據分析 |