02數(shù)據(jù)清洗及特征處理

1.缺失值觀察

.info()計(jì)算每一列的缺失值的個(gè)數(shù),輸出非空值non-null的個(gè)數(shù)及數(shù)據(jù)類型

.isnull()查看某一或者多列的缺失值

2.對(duì)缺失值進(jìn)行處理?

2.1一般的幾種思路:

None、isnull()、np.nan:數(shù)值列讀取數(shù)據(jù)后,空缺值的數(shù)據(jù)類型為float64所以用None一般索引不到,所以最好用np.nan

2.2刪除缺失值--dropna

dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) 刪除缺失值 參數(shù):

axis: default 0指行,1為列

how: {‘a(chǎn)ny’, ‘a(chǎn)ll’}, default ‘a(chǎn)ny’指帶缺失值的所有行;'all’指清除全是缺失值的

thresh: int,保留含有int個(gè)非空值的行

subset: 對(duì)特定的列進(jìn)行缺失值刪除處理

inplace: 這個(gè)很常見(jiàn),True表示直接在原數(shù)據(jù)上更改

2.3填充/替換缺失數(shù)據(jù) - fillna、replace

fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

inplace參數(shù)的取值:True、False

True:直接修改原對(duì)象

False:創(chuàng)建一個(gè)副本,修改副本,原對(duì)象不變(缺省默認(rèn))

method參數(shù)的取值 : {‘pad’, ‘ffill’,‘backfill’, ‘bfill’, None}, default None

pad/ffill:用前一個(gè)非缺失值去填充該缺失值

backfill/bfill:用下一個(gè)非缺失值填充該缺失值

None:指定一個(gè)值去替換缺失值(缺省默認(rèn)這種方式)

limit參數(shù):限制填充個(gè)數(shù)

axis參數(shù):修改填充方向

3.查看數(shù)據(jù)中的重復(fù)值

duplicated():判斷是否有重復(fù)值

drop_duplicates() :刪除重復(fù)值

4.特征觀察與處理

數(shù)值型特征、文本型特征

4.1分箱操作

pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')

x:被分割的數(shù)組數(shù)據(jù),可以是df[col],np.array,還可以是pd.seres,list 但是數(shù)據(jù)必須是一維的

bins:被分割后的區(qū)間,有三種形式,int值(如bins=5,就是將x平均分為5位),list或者np.array(如bins=[1,2,3],則將x按照(1,2],(2,3]分割),pandas.IntervalIndex 定義要使用的精確區(qū)間

right:bool型參數(shù),默認(rèn)為True,表示是否包含區(qū)間右部

labels:給分割后的區(qū)間打標(biāo)簽,但是labels的長(zhǎng)度必須和分割后的區(qū)間的長(zhǎng)度相等

retbins:bool型的參數(shù),表示是否將分割后的bins返回

precision:保留區(qū)間小數(shù)點(diǎn)的位數(shù),默認(rèn)為Ω

include_lowest:bool型的參數(shù),表示區(qū)間的左邊是開(kāi)還是閉的,默認(rèn)為false,也就是不包含區(qū)間左部(閉)

duplicates:是否允許重復(fù)區(qū)間


任務(wù):對(duì)年齡進(jìn)行分箱(離散化)處理

(1) 將連續(xù)變量Age平均分箱成5個(gè)年齡段,并分別用類別變量12345表示

(2) 將連續(xù)變量Age劃分為(0,5] (5,15] (15,30] (30,50] (50,80]五個(gè)年齡段,并分別用類別變量12345表示

(3) 將連續(xù)變量Age按10% 30% 50% 70% 90%五個(gè)年齡段,并用分類變量12345表示

4.2查看文本變量名及種類value_counts()及.unique()

4.3將文本變量轉(zhuǎn)換為12345

方法:replace及map、使用sklearn.preprocessing的LabelEncoder

4.4將文本變量用one-hot編碼表示

One-Hot 編碼,又稱一位有效編碼,其方法是使用N位狀態(tài)寄存器來(lái)對(duì)N個(gè)狀態(tài)進(jìn)行編碼,每個(gè)狀態(tài)都由他獨(dú)立的寄存器位,并且在任意時(shí)候,其中只有一位有效。

例如:

自然狀態(tài)碼為:000,001,010,011,100,101

獨(dú)熱編碼為:000001,000010,000100,001000,010000,100000

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容