不管是機器學習中還是其他項目裏,數據裏有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