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