用python玩转数据测试与作业_用Python玩转数据分析10
MOOC上的課程《用Python玩轉(zhuǎn)數(shù)據(jù)分析》的學(xué)習(xí)筆記。
數(shù)據(jù)探索與預(yù)處理之?dāng)?shù)據(jù)清洗
數(shù)據(jù)探索包括檢查數(shù)據(jù)錯(cuò)誤,了解數(shù)據(jù)分布特征和內(nèi)在規(guī)律
數(shù)據(jù)預(yù)處理包括數(shù)據(jù)清洗,數(shù)據(jù)集成(integration),數(shù)據(jù)變換,數(shù)據(jù)規(guī)約(reduction)
本次主要講解數(shù)據(jù)清洗,包括缺失值和異常值的檢測(cè)和處理。
缺失值處理首先可以用 導(dǎo)入后的數(shù)據(jù)對(duì)象名.isnull() 來(lái)查看是否存在缺失值
刪除:當(dāng)多個(gè)屬性的值缺失或者關(guān)鍵屬性缺失時(shí),可將該條記錄刪除
>>>導(dǎo)入后的數(shù)據(jù)對(duì)象名.dropna(axis=0/1, how='any/all',其他參數(shù)設(shè)置可在help中查看)
第一個(gè)數(shù)字0表示刪除有缺失值的行(默認(rèn)),1表示刪除有缺失值的列。第二個(gè)any表示這一行/列有一個(gè)缺失值就刪除(默認(rèn)),all表示這一行/列全部是缺失值再刪除。
填充:可考慮用均值、眾數(shù)、中位數(shù)填充,也可用缺失值上下的數(shù)據(jù)、插值函數(shù)、最近鄰或者回歸建模得到的極大似然估計(jì)來(lái)填充。
>>>導(dǎo)入后的數(shù)據(jù)對(duì)象名.fillna(導(dǎo)入后的數(shù)據(jù)對(duì)象名.mean(), inplace=True) (用均值填充,且直接更改了原始的DataFrame)
>>>導(dǎo)入后的數(shù)據(jù)對(duì)象名.fillna(method = 'ffill / bfill') (用上一個(gè)/下一個(gè)非缺失值填充)
異常值處理如何觀察異常值?
簡(jiǎn)單統(tǒng)計(jì),繪圖,基于密度、最近鄰和聚類等方法。這里介紹幾種簡(jiǎn)單實(shí)用的。
describe方法
>>>導(dǎo)入后的數(shù)據(jù)對(duì)象名.describe() (可以顯示最大值、最小值、四分位數(shù)和方差等結(jié)果)
箱形圖方法
>>>導(dǎo)入后的數(shù)據(jù)對(duì)象名.boxplot()
3sigma方法
原理:如果數(shù)據(jù)服從正態(tài)分布,那么在均值上下3倍標(biāo)準(zhǔn)差之外的數(shù)就很可能是異常值。
可利用DataFrame的布爾索引來(lái)編寫(xiě)程序
>>>導(dǎo)入后的數(shù)據(jù)對(duì)象名.[abs(數(shù)據(jù)對(duì)象名 - 數(shù)據(jù)對(duì)象名.mean())>3*數(shù)據(jù)對(duì)象名.std()]
然后dropna(how = 'all')就可以顯示包含異常值的記錄。
異常值處理
可以用和缺失值處理一樣的方法,刪除或者填充;也可以不處理;還可以用分箱法binning等方式處理。需要根據(jù)實(shí)際情況具體分析。
總結(jié)
以上是生活随笔為你收集整理的用python玩转数据测试与作业_用Python玩转数据分析10的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 鸿蒙os2.0公测机型,鸿蒙OS2.0第
- 下一篇: 基于dde的vb和matlab,基于VB