標籤:

Python數據分析基本過程

參考資料:《利用Python進行數據分析》、從零學會數據分析:數據分析的基本過程

一、一維數據分析

1. Numpy一維數組—array

Numpy一維數組與列表的區別:

  • 一維數組提供了統計功能,比如計算平均值mean(),標準差()等等。
  • 一維數組可以進行向量化計算,比如向量相加,乘以標量等等。
  • 一維數組中每個元素必須是同樣的數據類型,而列表可以是不同的數據類型。

2.Pandas一維數據—Series

Series是有索引的,在定義的時候可以用index指定索引。

獲取一維數組中的元素:

  • 根據位置獲取值:iloc

  • 根據索引獲取值

向量計算:相加(根據索引值相同相加)

缺失值處理:

  • 刪除確缺失值:dropna

  • 將缺失值進行填充

二、二維數據分析

1.Numpy二維數組—array

查詢元素:

  • 查詢數組中的某個元素:a[0,2](0為行號,2為列號)

  • 獲取某一行:第一行 a[0, : ]

  • 獲取某一列,第一列 a[ : , 0]

Numpy數軸參數:

axis=1按行計算 axis=0按列計算

2.Pandas二維數組(數據框)

創建Pandas數據框:

  • 定義一個字典,映射列名和對應列的值

  • 定義數據框,參數傳入字典

平均值計算:按每列求

查詢元素:

  • 根據位置查詢:iloc

1)查詢某個元素的值:salesdf.iloc[0, 1](0為行號,1為列號)

2)獲取某一行:第一行 salesdf.iloc[0, : ]

3)獲取某一列:第一列 salesdf.iloc[ : ,0]

  • 根據索引查詢值:loc

1)查詢某個元素的值:salesdf.loc[0,商品編碼](0為行名,商品編碼為列名)

2)獲取某一行:第一行 salesdf.loc[0, : ]

3)獲取某一列:第一列 salesdf.loc[ : ,商品名稱] 簡單方法:salesdf[商品名稱]

  • 複雜查詢

1)查詢某幾列:salesdf[[商品名稱,銷售數量]]

2)切片功能:指定範圍 salesdf.loc[:,商品編碼:銷售數量]

通過條件判斷篩選:

  • 構建查詢條件

  • 應用查詢條件

查看數據描述統計信息:

  • 讀取excel數據:用pandas中讀取excel的方法

  • 列印前5行:salesdf.head()

  • 查看多少行、列:salesdf.shape

  • 查看列的數據類型:dtype

  • 描述統計信息:salesdf.describe

三、案例分析

1.提出問題

業務指標需求:月均消費次數、月均消費金額、客單價、消費趨勢

2.理解數據

讀取數據,將所有數據類型統一,查看數據基本信息

3.數據清洗

  • 選擇子集

  • 列名重命名:rename

構建舊列名和新列名的字典。

rename方法里的參數inplace=False(默認),數據框本身不會變,會創建一個改動後的新數據框;inplace=True 數據框本身會改動。

  • 缺失數據處理

刪除缺失值:dropna how=any在給定的任何一列中有缺失值就刪除

  • 數據類型轉換:

1)將銷售數量、應收金額、實收金額轉換成數值型:astype

2)字元串轉換成日期數據類型

定義函數,分割銷售日期,獲取銷售日期:

字元串轉換成日期:

format是原始數據中日期的格式。

errors=coerce如果原始數據不符合日期的格式,轉換後的值為NaT。

轉換過程中不符合日期格式的數值會被轉換為空值None,所以需要再運行下刪除銷售時間、社保卡號中為空的行。

  • 數據排序:sort_values

by:按哪些列排序 ascending=True 表示降序排列 ascending=False 表示升序排列

排序後需要重命名行名:reset_index

  • 異常值處理

先查看數據的描述統計信息:發現數據中含有小於0的異常值

通過條件判斷篩選出異常值數據,然後刪除:

4.構建模型

  • 業務指標1:月均消費次數=總消費次數 / 月份數

總消費次數:同一天內,同一個人發生的所有消費都為一次消費

根據列名(銷售時間,社區卡號),如果這兩個列值同時相同,只保留1條,將重複的數據刪除。

根據銷售時間求出最大時間值和最小時間值,算出總共的天數,最後求出月份數。

  • 業務指標2:月均消費金額 = 總消費金額 / 月份數

  • 業務指標3:客單價 = 總消費金額 / 總消費次數

  • 業務指標4:消費趨勢圖(後續補充)

通過Pandas、Numpy對數據的操作,掌握數據分析的基本過程。明確業務指標,根據業務需求分析數據,中間用到的處理方法比較細,多寫多練就會熟悉很多,我也是在不斷試錯的過程中找到正確的方法。繼續加油~~


推薦閱讀:

python初學者,如果你連這樣的習題寫不出代碼,該怎麼辦?
Python機器學習實踐—決策樹
我的詞典我做主!python3.5生成自己的詞性詞典

TAG:Python |