某些情况需要操作包含 NaN 的 DataFrame 值。为了简化此过程,请考虑以下场景:一个包含 NaN 的 DataFrame,需要将其替换为上方同一列中的非 NaN 值。
pandas 的 fillna 方法是一个有效的解决方案。通过将方法参数指定为“ffill”(前向填充),NaN 将替换为相应列中最接近的有效观察值:
import pandas as pd df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]]) df.fillna(method='ffill')
此方法的操作方式是“将最后一个有效观察值向前传播到下一个有效观察值”有效的。”这在保持时态或循环数据的完整性时特别有用。
为了达到相反的效果,可以采用“bfill”方法(回填)。对于 DataFrame 的就地修改,请使用 inplace=True 参数:
df.fillna(method='ffill', inplace=True)
请记住,第一行通常用作没有 NaN 的基线。通过采用这种方法,NaN 替换过程变得高效且无循环。
以上是如何在没有循环的情况下有效地用上面的值替换 Pandas DataFrame 中的 NaN?的详细内容。更多信息请关注PHP中文网其他相关文章!