代码之家  ›  专栏  ›  技术社区  ›  Arvinth Kumar

尝试从数据帧的第一个非零值开始添加时出现问题。列中间有零值的记录

  •  0
  • Arvinth Kumar  · 技术社区  · 6 年前

    我有数据帧测向。我需要从数据帧中的非零值开始添加值10,并将零保持在非零值之前。我使用以下代码

        df_lci = df.replace ({0: np.nan}).add(10).fillna(0)
    

    问题是在列的中间有零个值。不添加列中间的零值。请帮忙解决这个问题

    数据帧 df

        value
    1   0
    2   0
    3   0 
    4   0
    5   51.134
    6   52.4833
    7   53.7698
    8   0
    9   4
    

    预期输出:

       0
       0
       0 
       0
       61.134
       62.4833
       63.7698
       10
       14 
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   BENY    6 年前

    IIUC

    df.loc[df.value.ne(0).idxmax():,'value']+=10
    df
    Out[579]: 
         value
    1   0.0000
    2   0.0000
    3   0.0000
    4   0.0000
    5  61.1340
    6  62.4833
    7  63.7698
    8  10.0000
    9  14.0000