尝试从DataFrame的第一个非零值开始添加时出现问题。在列

时间:2018-07-19 18:41:28

标签: python pandas dataframe

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

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

问题是我在列中间有零值。不会在列中间添加10的零值。请帮助解决问题

数据框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 个答案:

答案 0 :(得分:3)

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