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

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

Barbara Streisand
发布: 2024-12-01 17:54:09
原创
188 人浏览过

How Can I Efficiently Replace NaN Values in Pandas DataFrames Without Loops?

Pandas DataFrame 中的无循环 NaN 替换

替换 Pandas DataFrame 中的 NaN 值可能是一项常见任务。一种方法是用其上方的第一个非 NaN 值迭代替换 NaN。然而,这种方法效率低下,而且容易出错。

幸运的是,Pandas 提供了一种更高效且无循环的方法来使用 fillna 方法来完成此任务。通过将方法指定为“ffill”(前向填充),Pandas 会将最后一个有效观察向前传播到下一个有效观察:

import pandas as pd

df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])

df.fillna(method='ffill')
登录后复制

这会产生以下 DataFrame:

   0  1  2
0  1  2  3
1  4  2  3
2  4  2  9
登录后复制

fillna 方法还允许使用“bfill”(向后填充)进行向后填充(从底部填充)方法:

df.fillna(method='bfill')
登录后复制

默认情况下,fillna 方法不会就地修改原始 DataFrame。要修改原始 DataFrame,请指定 inplace=True:

df.fillna(method='ffill', inplace=True)
登录后复制

以上是如何在没有循环的情况下高效替换 Pandas DataFrame 中的 NaN 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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