不管是機器學習中還是其他項目裏,數據裏有nan值的話,後面計算很大概率都會影響最終結果。所以要麼説在源文件中避免出現nan值,要麼在程序中對文件中的nan值進行處理。
如果在計算過程中出現nan,也會導致loss、accuracy、val_loss等出現nan的情況。
比如對於在pandas中出現nan值,直接使用dropna()方法對其進行處理即可,默認會刪除包含有nan值的行。
df.dropna()
想刪除包含nan的列的話,用下面這個:
df.dropna(axis=1)
如果刪除特定的包含nan的單元格,用這個:
df.dropna(subset=[0,2])
僅檢查並刪除第 0 列和第 2 列含 NaN 的行,只要任意列中有nan,就刪除nan對應所在的行。同理,下面這段代碼也是類似的。
# 刪除指定列中有 NaN 的行
df_clean = df.dropna(subset=['列名1', '列名2'])
注:
對原始數據不會有影響,會返回一個處理後的df