天天看點

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

學習時間:2019/10/25 周五晚上22點半開始。

學習目标:Page188-Page217,共30頁,目标6天學完,每天5頁,預期1029學完。

實際回報:X集中學習1.5小時,學習6頁。實際XXX學完,耗時N天,M小時

資料準備工作:加載、清理、轉換以及重塑,通常會占用分析師80%的時間或更多!!!學會高效的資料清洗和準備,将絕對提升生産力!本章将讨論處理缺失資料、重複資料、字元串操作和其他分析資料轉換的工具。下一章将關注用多種方法合并、重塑資料集。

7.1 處理缺失資料

缺失資料在pandas中呈現的方式有些不完美,但對于大多數使用者可以保證功能正常。

對于數值資料,pandas使用浮點值NaN(Not a Number)表示缺失資料。稱其為哨兵值,可以友善地檢測出來:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

在pandas中,将缺失值表示為NA(R語言地慣用法),表示not available。NA資料可能是不存在地資料或雖然存在但沒有觀察到。(進行資料清洗時,為便于分析最好直接對缺失資料進行分析,以判斷資料采集地問題或缺失胡資料可能導緻的偏差。)

Python内置的None值在對象資料中也可以作為NA:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

表7-1 一些關于缺失資料處理的函數

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

7.1.1 濾除缺失資料

過濾缺失資料,用dropna更為實用(也可通過pandas.isnull或布爾索引的手工方法)

對于Series,dropna傳回一個僅含非空資料和索引值的Series:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

等價于:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

對于DataFrame對象, dropna預設丢棄任何含有缺失值的行:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

1)傳入 how = ‘all‘ 将隻丢棄全為NA的行:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

2)傳入 axis = 1,将丢棄含有NA的所有列,如果同時傳入 how = ‘all‘ 則會丢棄全為NA的列:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

3)另一個濾除DataFrame行的問題涉及時間序列資料。假設需要留下一部分觀測資料,可用 thresh=N 參數實作此目的(丢棄前N行含有NA的行,對于列如何處理???):

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

7.1.2 填充缺失資料

如果不想濾除缺失資料,而是希望通過其他方式填補哪些缺失資料,則fillna方法是最主要的函數。通過一個常數調用fillna就會将缺失值替換為該常數:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

通過一個字典調用fillna,可實作對不同列填充不同的值:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

fillna預設會傳回新對象,如果想對現有對象進行就地修改,則可以通過傳入 inplace = True實作:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

對reindex(書中為reindexing,是否有誤?)有效的插值方法,同樣适用于fillna:

python的dropna 和notna的性能_利用Python進行資料分析 第7章 資料清洗和準備

7.2 資料轉換

7.2.1 移除重複資料

7.2.2 利用函數或映射進行資料轉換

7.2.3 替換值

7.2.4 重命名軸索引

7.2.5 離散化和面元劃分

7.2.6 檢測和過濾異常值

7.2.7 排列和随機采樣

7.2.8 計算名額和啞變量

7.3 字元串操作

7.3.1 字元串對象方法

7.3.2 正規表達式

7.3.3 pandas的矢量化字元串函數

7.4 總結

高效的資料準備,可以為資料分析留出更多時間。下一章,将學習pandas的聚合與分組。