考虑使用 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中文网其他相关文章!