用最大值的增量填充零

时间:2019-08-05 12:00:01

标签: pandas

我有以下数据框

df = pd.DataFrame([{'id':'a', 'val':1}, {'id':'b', 'val':2}, {'id':'c', 'val': 0}, {'id':'d', 'val':0}])

我要用最大值+1代替0

我想要的结果如下:

df = pd.DataFrame([{'id':'a', 'val':1}, {'id':'b', 'val':2}, {'id':'c', 'val': 3}, {'id':'d', 'val':4}])

我尝试了以下操作:

for _, r in df.iterrows(): 
    if r.val == 0: 
        r.val = df.val.max()+1

但是,只有一种方法可以完成上述操作

1 个答案:

答案 0 :(得分:2)

仅用boolean indexingDataFrame.loc过滤0行,并为range分配条件True的条件值,并加上最大值和{{1} },因为python从1中的0开始计数:

range