首页 > 后端开发 > Python教程 > 如何在没有循环的情况下有效地用上面的值替换 Pandas DataFrame 中的 NaN?

如何在没有循环的情况下有效地用上面的值替换 Pandas DataFrame 中的 NaN?

Barbara Streisand
发布: 2024-12-08 16:56:09
原创
674 人浏览过

How Can I Efficiently Replace NaNs in a Pandas DataFrame with Values from Above Without Loops?

Pandas DataFrame 中的无循环 NaN 替换

某些情况需要操作包含 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板