介紹
在數據處理過程中,缺失數據或NaN值是比較常見的情況。在 Pandas 中,我們可以使用 dropna() 方法刪除包含 NaN 值的行或列,來減少數據異常值對於統計分析、建模以及預測的影響。
正文
一、什麼是 NaN 值
NaN 值是表示缺少數據或不適用數據的一種標籤。常見的情況是數據沒有被觀測或沒有被記錄。在 Pandas 中,NaN表示Not a Number,可以用 np.NaN 或 pd.NaT 表示。
二、使用 dropna 刪除包含 NaN 值的行
import pandas as pd import numpy as np df = pd.DataFrame([[np.nan, 2, np.nan, 0], [3, 4, np.nan, 1], [np.nan, np.nan, np.nan, 5], [8, 7, 6, 4], [5, np.nan, np.nan, np.nan]], columns=list('ABCD')) # 刪除包含 NaN 值的行 df.dropna()
上述示例中,我們創建了一個包含 NaN 值的 DataFrame,其中又包含一些 NaN 值。於是我們使用 dropna() 方法將包含 NaN 值的行刪除。
三、使用 dropna 刪除包含 NaN 值的列
import pandas as pd import numpy as np df = pd.DataFrame([[np.nan, 2, np.nan, 0], [3, 4, np.nan, 1], [np.nan, np.nan, np.nan, 5], [8, 7, 6, 4], [5, np.nan, np.nan, np.nan]], columns=list('ABCD')) # 刪除包含 NaN 值的列 df.dropna(axis=1)
上述示例中,我們使用 dropna() 方法將包含 NaN 值的列刪除。需要注意的是,在調用 dropna() 方法時,默認為 axis=0,即刪除行,若需要刪除列,則需要將 axis 設置為 1。
四、使用 thresh 參數刪除包含 NaN 值的行或列
import pandas as pd import numpy as np df = pd.DataFrame([[np.nan, 2, np.nan, 0], [3, 4, np.nan, 1], [np.nan, np.nan, np.nan, 5], [8, 7, 6, 4], [5, np.nan, np.nan, np.nan]], columns=list('ABCD')) # 刪除列中非 NaN 值小於 3 的列 df.dropna(thresh=3, axis=1)
在某些情況下,可能需要刪除一些非 NaN 值較少的行或列。這時可以使用 thresh 參數來控制刪除條件。例如,上述示例中,我們使用了 thresh=3,即刪除列中非 NaN 值小於 3 的列。
五、使用 inplace 參數直接在原數據上刪除
import pandas as pd import numpy as np df = pd.DataFrame([[np.nan, 2, np.nan, 0], [3, 4, np.nan, 1], [np.nan, np.nan, np.nan, 5], [8, 7, 6, 4], [5, np.nan, np.nan, np.nan]], columns=list('ABCD')) # 直接在原數據上刪除所有包含 NaN 值的行 df.dropna(inplace=True)
通過設置 inplace 參數為 True,可以直接在原數據上進行刪除操作,且不會返回一個新的 DataFrame。
結論
使用 dropna() 方法可以快速有效地刪除包含 NaN 值的行或列,從而避免統計分析、建模以及預測等過程中,缺失數據對結果產生的干擾。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248163.html