1. 缺失值處理
1.1 判斷缺失值
1、info()
2、isnull(),可與any()和all()結合使用
3、notnull()
導入數據:
使用info()可以查看每一列的相關信息,可以知道每一列有多少個非空數值。
使用isnull()判斷空值,按列判斷。
使用notnull()判斷非空,按列判斷。
1.2 丟棄缺失值
對於缺失值,可以丟棄處理(dropna)。
參數:
- how:指定丟棄缺失值的行爲,默認是any(即有缺失值就刪除),all。
- axis:指定丟棄行還是列,默認是axis = 0,丟棄行。
- thresh:設置當非空值達到多少個時,保留數據。
- inplace:是否就地修改。
導入數據:
使用dropna()按行刪除缺失值。原本有1396行數據,刪除缺失值後,剩餘1098行。
設置how
設置axis = 1,只要該列有缺失值就刪除該列。
設置thresh,只要大於等於設置的值,該行纔會被保留。
1.3 填充缺失值
對於缺失值,可以填充處理(fillna)。
參數:
- value:指定填充的值,可以是字典,設置不同的列(key)填充不同的值(value)。
- method:向上填充,採用前一個值填充(pad/ffill);向下填充,採用後一個值填充(backfill/bfill)。
- limit:指定最大連續NaN填充的次數,如果沒有指定,則表示填充所有的NaN。
- iinplace:是否就地修改。
導入數據:
使用固定值填充
根據字典填充
向上填充ffill
向下填充bfill
limit最多連續填充NaN次數
1.4 describe()
describe()針對數值列和非數值列,顯示的信息不一樣。
導入數據:
2. 重複值處理
2.1 發現重複值
duplicated()發現重複值,該方法返回一個series類型對象,值爲布爾類型。
參數:
subset:指定依據哪些列來判斷是否重複,默認是所有列,即一行的所有值完全相同視爲重複。
keep:指定標記重複記錄的規則,默認是first。
- first:前面的記錄標記爲True
- last:後面的記錄標記爲True
- False:所有記錄標記爲True
例如1,2,3行記錄重複,則
first:True True False
last:False True True
first:True True True
導入數據:
查看重複值
subset判斷只要某些列相同,則認爲是重複
2.2 刪除重複值
drop_duplicates()刪除重複值。
參數:
subset:指定依據哪些列判斷是否重複。