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

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

Barbara Streisand
Barbara Streisand原创
2024-12-01 17:54:09184浏览

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

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