您好,登錄后才能下訂單哦!
約定:
import pandas as pd import numpy as np from numpy import nan as NaN
濾除缺失數據
pandas的設計目標之一就是使得處理缺失數據的任務更加輕松些。pandas使用NaN作為缺失數據的標記。
使用dropna使得濾除缺失數據更加得心應手。
一、處理Series對象
通過**dropna()**濾除缺失數據:
se1=pd.Series([4,NaN,8,NaN,5]) print(se1) se1.dropna()
代碼結果:
0 4.0
1 NaN
2 8.0
3 NaN
4 5.0
dtype: float640 4.0
2 8.0
4 5.0
dtype: float64
通過布爾序列也能濾除:
se1[se1.notnull()]
代碼結果:
0 4.0
2 8.0
4 5.0
dtype: float64
二、處理DataFrame對象
處理DataFrame對象比較復雜,因為你可能需要丟棄所有的NaN或部分NaN。
df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]]) df1
代碼結果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | NaN | NaN | 2.0 |
2 | NaN | NaN | NaN |
3 | 8.0 | 8.0 | NaN |
默認濾除所有包含NaN:
df1.dropna()
代碼結果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
傳入**how=‘all'**濾除全為NaN的行:
df1.dropna(how='all')
代碼結果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | NaN | NaN | 2.0 |
3 | 8.0 | 8.0 | NaN |
傳入axis=1濾除列:
df1[3]=NaN df1
代碼結果:
0 | 1 | 2 | 3 | |
---|---|---|---|---|
0 | 1.0 | 2.0 | 3.0 | NaN |
1 | NaN | NaN | 2.0 | NaN |
2 | NaN | NaN | NaN | NaN |
3 | 8.0 | 8.0 | NaN | NaN |
df1.dropna(axis=1,how="all")
代碼結果:
傳入thresh=n保留至少有n個非NaN數據的行:
df1.dropna(thresh=1) df1.dropna(thresh=3)
代碼結果:
0 | 1 | 2 | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | NaN | NaN | 2.0 |
2 | NaN | NaN | NaN |
3 | 8.0 | 8.0 | NaN |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。