python - 如果该行不是 nan,则将前几个角色的值设为该行的值
问题描述
我有一个如下所示的数据框:
df = pd.DataFrame([np.nan]*99,columns = ['col1'])
df.loc[23] = 70
df.loc[35] = 50
df.loc[90] = 81
df.loc[98] = 3
如何使新列 (col2) 的值成为 df col1 的前几 (x) 行的值成为具有值的行的值?例如,如果 x = 4,使第 20-23 行为 70,第 32-35 行为 50,第 87-90 行为 81,第 95-98 行为 3?
谢谢!
解决方案
如果缺少其他值,请使用带限制参数的回填:
df1 = df.bfill(limit=3)
print (df1.tail(15))
col1
84 NaN
85 NaN
86 NaN
87 81.0
88 81.0
89 81.0
90 81.0
91 NaN
92 NaN
93 NaN
94 NaN
95 3.0
96 3.0
97 3.0
98 3.0
推荐阅读
- r - R:在 tibble 列上选择行名的代理
- python - 将超链接嵌入到数据集中带有 HTML 的列中
- sapui5 - 如何使值状态文本始终可见
- html - CSS:悬停选择器不改变颜色
- java - 如何使用 Spring Cloud Stream 和 Kafka Streams Binder 暂停(打开/关闭)流处理?
- c++ - 检测函数类型是否为 noexcept 的特征
- php - PSR:我应该将基本类添加到命名空间部分吗?
- java - 使用默认应用程序打开文件并将所述应用程序置于前台
- angular - 如何以角度连续使用两个管道
- azure - alg 字段未显示在 Azure AD jwks 响应中