首页 >后端开发 >Python教程 >如何使用'ffill”和'bfill”高效替换 Pandas DataFrame 中的 NaN 值?

如何使用'ffill”和'bfill”高效替换 Pandas DataFrame 中的 NaN 值?

Patricia Arquette
Patricia Arquette原创
2024-12-01 19:05:10970浏览

How to Efficiently Replace NaN Values in Pandas DataFrames using `ffill` and `bfill`?

用 Pandas DataFrame 中的前一个或下一个值替换 NaN

处理 Pandas DataFrame 时,丢失表示为 NaN(不是数字)的数据可能会给数据分析带来挑战。一项常见任务是将这些 NaN 替换为从现有数据派生的适当值。一种简单的方法是迭代 DataFrame 并显式修改值。然而,Pandas 提供了更有效的解决方案,可以避免使用循环。

前向填充 (ffill)

用上面的第一个非 NaN 值替换 NaN同一列,使用 fillna 方法和 ffill(向前填充)选项。此方法将最后一个有效观察向前传播到后续有效观察。

import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df.fillna(method='ffill')

输出:

   0  1  2
0  1  2  3
1  4  2  3
2  4  2  9

其他注意事项

  • DataFrame 中的第一行不应包含 NaN,因为它充当填充。
  • ffill 方法按列操作,这意味着它分别填充每列中的 NaN。
  • 要执行向后填充(用下面的下一个非 NaN 值替换 NaN),请使用bfill(向后填充)选项。
  • 要就地修改 DataFrame 而不创建新变量,请将 inplace 参数设置为正确:
df.fillna(method='ffill', inplace=True)

以上是如何使用'ffill”和'bfill”高效替换 Pandas DataFrame 中的 NaN 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn