經過python的基礎學習後,來到了核心課程:數據分析。在學這一課程的時候有點熬人,不知道為啥,有可能跟心情有關吧,本來2天能完成的,託到4天。

主要的學習內容是numpy和pandas兩個庫。

numpy的主要數據類型是narray,分為一維和二維,主要用來進行一些矩陣的計算。

pandas則是數據分析主要用到的庫(pandas是在numpy的基礎上封裝上來的)。包括很多內容,其中最重要的就是索引了,單項索引,多項索引等。

https://pan.baidu.com/s/1C48aou7S7N_lxggsSv-9ng?

pan.baidu.com

上面是自己跟著猴子老師課程練習的代碼,包含藥店銷售數據的案例。

下面總結一下數據分析的流程:

(1)提出問題

提出問題時至關重要的一步,在這一步,要明確目的,同時要根據目的推測出需要的數據,然後才能接下一步,收集數據。

(2)收集數據

(3)數據清洗

(4)構建模型

(5)可視化與撰寫報告

本次課程主要的內容是數據清洗,具體的步驟包括:

(1)選擇子集:

一般情況寫,我們是根據問題選擇數據,有的時候並不需要所有數據,因此,我們第一步把我們所需要的數據提出出來,建立一個新的dataframe。

(2)重命名

根據我們自己分析數據的要求,給列重新命名,讓數據更加直觀。

rename函數

(3) 處理缺失值

處理缺失值的方法一般有兩種:刪除,替換。

刪除有dropna函數,根據行刪除,列刪除都可以,還可以選擇參數「how」來確定閾值。

替換有fillna函數,可以指定數值替換,也可以根據函數向前賦值還是向後複製。同時也刻意替換為均值,中位數等!

(4)替換值

replace函數,將某一值替換為指定的值。也可以根據條件替換,如把所有小於0的值全部替換為0等

(5)重複值的清洗

duplicated()查看時候有重複值,參數可以添加列,來查看某列或者組合是否有相同的數據。

unique()返回唯一值的數組並排序。

drop_duplicates([k1]) 刪除重複值,保留k1列中的唯一值的行,默認保留第一行

(6)字元類型轉換

一般情況下是根據構建模型時需要的運算來轉換,主要是int、float和str之間的轉換。還有就是時間序列的轉換,將str轉換為時間(to_datetime)。

(7)數據排序

數值排序:sort_values()根據列排序

索引排序:sort_index(),關於索引的操作還有setindex(),reset_index(),reindex()

(8)異常值處理

可以根據描述想統計:describe(),函數來查看是否有異常值,同時也可以通過畫圖來查看是否有異常值,發現異常值後,同樣可以用處理缺失值的方法來處理,刪除或者替換。

https://pan.baidu.com/s/1Z4LbxQAW8Sol51pUCJ1OVQ?

pan.baidu.com

上面是自己採集的數據的數據清洗鍊習,沒有完全做完,因為不會正則表達式沒法做,抽時間可以學一下。我記得有一個調差表明:絕大多數數據工作者遇到的最煩人的問題就是數據有問題,而不是建模分析過程,現在我是有確切體會了!


推薦閱讀:
相關文章