如何在pandas中通过前值加2的方式动态替换NaN值
你可以直接用fillna配合shift方法实现,一行代码即可完成需求:
df['ColumnD'] = df['ColumnD'].fillna(df['ColumnD'].shift() + 2)
逻辑说明
df['ColumnD'].shift()会将整列数据向下偏移一行,每个NaN的位置刚好对应上一行的原值- 偏移后的值统一加2,刚好匹配你需要的计算规则
- 最后调用
fillna将原列的NaN替换为计算得到的结果
如果你的实际场景中存在连续多个NaN的情况,可以用遍历的方式兼容:
import pandas as pd for i in range(1, len(df)): if pd.isna(df.loc[i, 'ColumnD']): df.loc[i, 'ColumnD'] = df.loc[i-1, 'ColumnD'] + 2
内容的提问来源于stack exchange,提问作者user3046211
相关产品推荐
相关产品推荐

