首页 > 解决方案 > 用 Python 中最接近的非 NaN 列值填充 NaN

问题描述

我想用最接近的(从左侧的位置)列的值来填充e列。NaNnot NaN

   a    b    c    d    e
0  1  2.0  3.0  6.0  3.0
1  3  5.0  7.0  NaN  NaN
2  2  4.0  NaN  NaN  NaN
3  5  6.0  NaN  NaN  NaN
4  3  NaN  NaN  NaN  NaN

例如,对于 的第二行e,它最接近的Not NaN列是e按位置,那么我们取7.0,在 Pandas 中是否可以这样做?谢谢。

预期的输出是这样的:

   a    b    c    d    e
0  1  2.0  3.0  6.0  3.0
1  3  5.0  7.0  NaN  7.0
2  2  4.0  NaN  NaN  4.0
3  5  6.0  NaN  NaN  6.0
4  3  NaN  NaN  NaN  3.0

标签: pythonpandasdataframe

解决方案


如果答案应该简化,请从左侧到最后一列获取所有第一个非缺失值,使用前向填充它们并按位置选择最后一列:

df.e = df.ffill(axis=1).iloc[:, -1]

推荐阅读