高效替換 Pandas DataFrame 中的 NaN
在資料分析中,空值或 NaN 可能會帶來挑戰。例如,讓我們考慮一個帶有 NaN 的 pandas DataFrame:
import pandas as pd df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
為了有效處理這些 NaN,我們尋求一種優雅的解決方案來用邏輯值替換它們。
前向填充方法
一種高效且無循環的方法是使用帶有 ffill 參數的 fillna 方法。此操作向前傳播最後觀察到的值,替換任何後續的 NaN。對於給定的DataFrame,它會導致:
df.fillna(method='ffill')
0 1 2 0 1 2 3 1 4 2 3 2 4 2 9
向後填充方法
或者,如果將NaN 替換為同一列中最接近的值,但如果需要向後方向,可以使用bfill 參數。此方法向後傳播第一個觀察值,填充 NaN。
就地修改
預設情況下,fillna 方法不會修改原始 DataFrame。若要永久套用更改,請使用 inplace=True。
df.fillna(method='ffill', inplace=True)
此操作直接更新 df,根據指定方法取代所有 NaN。
結論
利用fillna 方法的靈活性,我們可以透過前向和後向填充有效地替換pandas DataFrame 中的NaN技術,確保分析資料乾淨完整。
以上是如何有效地替換 Pandas DataFrame 中的 NaN 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!