標籤:

用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代表數據框的縮寫)

(三)數據分析過程

提出問題

寫代碼前,首先你要明白你想分析出什麼問題;

同時,可能需提前了解業務指標的含義,與需求方充分溝通業務指標的具體含義計算公式等

理解數據

採集數據——導入讀取數據——查看數據集信息,從整體上了解數據信息

【代碼】在導入數據的時候要注意路徑問題。否則會提示找不到文件,具體參考路徑問題:blog.csdn.net/Vincent_X

數據清洗

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:數據分析 |