我想用非NA值填充panda系列的NA,但前提是填充NA值的非NA值相同。有什么聪明快捷的解决方案吗?我知道我可以写一个函数,我会在itterrows设置中使用,但我操作的是数百万行,需要一个更快的解决方案。
输入示例:
0 NaN
1 1
2 NaN
3 1
4 NaN
5 2
6 NaN
7 NaN
8 2
9 NaN
输出:
0 NaN
1 1
2 1
3 1
4 NaN
5 2
6 2
7 2
8 2
9 NaN
这可能有点厚颜无耻,但我的第一个想法是检查ffill
和bfill
在哪里填充相同的值。
>>> s
0 NaN
1 1.0
2 NaN
3 1.0
4 NaN
5 2.0
6 NaN
7 NaN
8 2.0
9 NaN
dtype: float64
>>> ffill = s.ffill()
>>> s[ffill.eq(s.bfill())] = ffill
>>> s
0 NaN
1 1.0
2 1.0
3 1.0
4 NaN
5 2.0
6 2.0
7 2.0
8 2.0
9 NaN
dtype: float64