
文章來源:可樂的資料分析之路
作者:蝦殼可樂
寫在前面
之前我們讀取完了資料(Python資料分析實戰:擷取資料),下面就要對資料進行清洗了,首先是對缺失值的處理。缺失值也就是空值,先找出來再處理。
檢視缺失值
可以使用isnull方法來檢視空值,得到的結果是布爾值。
結果:
對于小的資料集來說,可以這樣看,但對于大的資料集這樣檢視空值貌似沒什麼意義,沒關系,還有其他方法,可以使用 info方法
結果:
info方法可以看到字段的資料類型以及每個字段下有多少個非空值,可以看到neighbourhood_group 字段全為空,這和布爾值顯示的結果一緻。
其實還有一個方法,更簡單了:
對取出來的isnull的布爾值求和,就很明顯地看到,id列是沒有空值的,name列有一個空值,結果:
也可以對單獨的某一列這樣檢視空值,對name列檢視空值
結果為1,說明name列有1個空值:
缺失值的處理
找到缺失值以後如何處理呢?删除或填充。
删除缺失值
用dropna方法,預設是隻要一行中有一個缺失值這一行就全都删除
結果就是這個資料集裡的資料全被删掉了,因為其中的neighbourhood_group這個字段全為空,按照dropna的尿性,有一個為空就整行删除,就得到了如下結果:
當然也可以給這個方法傳入how="all"參數,隻有在整行為空的前提下才删除。
結果是一條都沒有删除,因為這個資料集裡沒有所有字段都為空的記錄:
但是有一列資料都為空的字段,把neighbourhood_group這一列删掉,還記得删除列的方法嗎
結果:
name列也是有一個空值的,找出來看一下
結果如下,這一行還是删了吧。
删除行用drop方法,剛剛定位出了要删除的那一行,行索引是456
結果可以看到變成了28451行,之前一直都是28452行。
缺失值填充
當然缺失值除了删除外,還可以進行填充,可以用0填充,也可以用均值、衆數填充。用fillna方法進行缺失值的填充。
last_review和reviews_per_month這兩列也有缺失值,我們用衆數填充(mode)last_review列的缺失值,用均值(mean)填充reviews_per_month列的缺失值。
結果
這裡隻是舉例缺失值也可以被填充這樣處理,在這個案例裡,不建議這兩列填充,空着就空着吧。下節内容來處理重複值和異常值。
如果你覺得文章不錯的話,分享、收藏、在看、留言666是對老表的最大支援。
老表Pro已經滿了
是以大家加老表Max吧
每日留言
說說你最近遇到的一個程式設計問題?
或者新學的一個小技巧?
(字數不少于15字)
完整Python基礎知識要點
Python小知識 | 這些技能你不會?(一) Python小知識 | 這些技能你不會?(二) Python小知識 | 這些技能你不會?(三) Python小知識 | 這些技能你不會?(四)
近期推薦閱讀:
【1】整理了我開始分享學習筆記到現在超過250篇優質文章,涵蓋資料分析、爬蟲、機器學習等方面,别再說不知道該從哪開始,實戰哪裡找了 【2】【終篇】Pandas中文官方文檔:基礎用法6(含1-5)
好文章,我在看❤️