python - 条件满足时填写nan值
问题描述
我有一个数据框,如下所示:
df = pd.DataFrame({'A': [1, np.nan, np.nan, np.nan, 3, 3, 3, 3, np.nan, np.nan, np.nan, 5, 5, 5, 6, 6, 6, np.nan, np.nan, np.nan, 6, 7, 8, 9, 10,np.nan, np.nan, 10, 11]})
我只想在前一个非 nan 值等于流动的非 nan 值时才填充 nan 值。
预期输出:
df = pd.DataFrame({'A': [1, np.nan, np.nan, np.nan, 3, 3, 3, 3, np.nan, np.nan, np.nan, 5, 5, 5, 6, 6, 6, np.nan, np.nan, np.nan, 6, 7, 8, 9, 10, np.nan, np.nan,10, 11],'fill_nan': [1, np.nan, np.nan, np.nan, 3, 3, 3, 3, np.nan, np.nan, np.nan, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 8, 9, 10, 10, 10,10, 11]})
解决方案
尝试比较bfill
with ffill
:
s = df.ffill()
out = s.where(s.eq(df.bfill()))
输出:
A
0 1.0
1 NaN
2 NaN
3 NaN
4 3.0
5 3.0
6 3.0
7 3.0
8 NaN
9 NaN
10 NaN
11 5.0
12 5.0
13 5.0
14 6.0
15 6.0
16 6.0
17 6.0
18 6.0
19 6.0
20 6.0
21 7.0
22 8.0
23 9.0
24 10.0
25 10.0
26 10.0
27 10.0
28 11.0
推荐阅读
- c# - 显示正确时区的时间
- mono - 使用 snapcraft 和 Fedora 打包预构建二进制文件(单声道和 gtk-sharp2)
- weblogic - OSB 生产日志混淆 - 工作经理
- android - 即使用户滑动打开滑动菜单,如何保持关闭?
- webstorm - 如何防止 WebStorm 在导入前加上“@root/src”
- kotlin - 理解抽象类中的泛型参数
- annotations - 如何找到 IBM WebSphere Application Server 版本 9.0.0.10 的 JCDIWebListener 类?
- c# - Aspose将网页转换为pdf
- php - 我们可以在 php 脚本中安排 cron 作业吗?
- typescript - AmCharts 4 中的可滚动外部图表图例