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 |