首页 > 解决方案 > 整数值之间的条件前向填充

问题描述

我有一个整数值的数据框列,它们之间有空的 NaN。我想在新整数的开头和同一整数的最后一个实例之间转发填充。

0   NaN
1   2.0
2   NaN
3   NaN
4   2.0
5   NaN
6   NaN
7   3.0
8   NaN
9   NaN
10  NaN
11  3.0
12  NaN
13  NaN
14  4.0
15  NaN
16  4.0

所以我的结果数据框如下所示。我该怎么做?我的第一种方法是使用带有 isinstance(x,int) 的枚举和条件语句。

0   NaN
1   2.0
2   2.0
3   2.0
4   2.0
5   NaN
6   NaN
7   3.0
8   3.0
9   3.0
10  3.0
11  3.0
12  NaN
13  NaN
14  4.0
15  4.0
16  4.0

标签: pythonpandasdataframenan

解决方案


ffill+bfillmask

i = s.ffill()
i.mask(i != s.bfill())

0     NaN
1     2.0
2     2.0
3     2.0
4     2.0
5     NaN
6     NaN
7     3.0
8     3.0
9     3.0
10    3.0
11    3.0
12    NaN
13    NaN
14    4.0
15    4.0
16    4.0
Name: 1, dtype: float64

s是你的专栏。
我真的很喜欢这种简洁。


推荐阅读