考慮使用NaN 的DataFrame:
In [1]: import pandas as pd df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]]) In [2]: df 0 1 2 0 1 2 3 1 4 NaN NaN 2 NaN NaN 9
目標是將每個NaN 替換為最接近的非NaN其上方同一列中的值。假設第一行不包含 NaN。
實現這一點的有效方法是使用DataFrame 的fillna 方法:
In [3]: df.fillna(method='ffill') 0 1 2 0 1 2 3 1 4 2 3 2 4 2 9
fillna 方法採用前向填充(ffill)策略,用最後一個有效觀察值取代NaN
要執行相反的操作,您可以使用 bfill 方法(向後填充):
In [4]: df.fillna(method='bfill') 0 1 2 0 1 2 3 1 4 4 3 2 9 9 9
fillna 方法不會就地修改 DataFrame。若要更新原始 DataFrame,請設定 inplace=True:
In [5]: df.fillna(method='ffill', inplace=True) In [6]: df 0 1 2 0 1 2 3 1 4 2 3 2 4 2 9
以上是如何使用前一個或後一個值填入 Pandas DataFrame 中的 NaN 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!