1. 程式人生 > 其它 >Pandas中缺失值/NaN值/空值的處理

Pandas中缺失值/NaN值/空值的處理


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值
      填充本NaN值
    • pad/ffill:用前一個非NaN值來填充本Nan值
    • None:用value引數指定的值來填充(預設方式)
  • inplace:是否修改原物件

舉例

  1. 把所有的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)
  1. stu_name為NaN的填充為UNKNOWNstu_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)