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
