python - 整数值之间的条件前向填充
问题描述
我有一个整数值的数据框列,它们之间有空的 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
解决方案
ffill
+bfill
与mask
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
是你的专栏。
我真的很喜欢这种简洁。
推荐阅读
- vue.js - 如何防止用户在 Nuxt 中使用中间件离开页面?
- reactjs - 如何将点击处理程序传递给特定的地图图层?
- vue.js - TypeError: (0 , _ignore.getFileExtensions) 不是函数
- c - 如何利用缓冲区溢出在堆栈上执行指令
- php - 关系数据库中的 Laravel 雄辩分页调用
- r - R 两列中的完全匹配字符串
- angular - 如何将服务器端打字稿文件添加到 Angular 7 项目并自动构建?
- solr - 找不到类“tx_solr_indexqueue_PageIndexer”
- python - 只能将部分数据插入到csv中
- php - 我如何将( id ) url 插入数据库 Laravel