Pandas中缺失值/NaN值/空值的處理
阿新 • • 發佈:2021-06-14
isna()
釋義
篩選為NaN的布林值,可接受單個標量或者陣列
舉例
篩選stu_name
為NaN的所有行:
df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np.nan], 'stu_age': [16, 16, 15, np.nan, 21]})
print(df)
df1 = df[df['stu_name'].isna()]
print(df1)
fillna()
釋義
對NaN值進行填充,官方文件
常用引數
- value:用來填充的值,只能為
標量/dict/Series/DataFrame
- method:填充的方式
- backfill/bfill:用後一個非NaN值
- pad/ffill:用前一個非NaN值來填充本Nan值
- None:用
value
引數指定的值來填充(預設方式)
- backfill/bfill:用後一個非NaN值
- inplace:是否修改原物件
舉例
- 把所有的NaN填充為橫槓
-
df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np.nan], 'stu_age': [16, 16, 15, np.nan, 21]})
print(df)
df1 = df.fillna('-')
print(df1)
stu_name
為NaN的填充為UNKNOWN
,stu_age
為NaN的填充為-1
df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np.nan], 'stu_age': [16, 16, 15, np.nan, 21]}) print(df) df2 = df.fillna({'stu_name': 'UNKNOWN', 'stu_age': -1}) print(df2)