I have to remove the consecutive same number from the column in a dataframe. I am able to remove the number one time, but when I try to do it for the second time the loop does not work as there is one na value in between.
dataframe is
A   B    C
12  14  16
15  16  17
15  16  18
15  18  20
after the first loop i have 
A    B    C
12   14  16
15   16  17
na   na  18
15   18  20
now i have to remove the last 15 also as i want the dataframe to be 
A    B   C
12   14  16
15   16  17
na   na  18
na   18  20
the code is
for i in df1.index:
   f_id = df1["f_secid"][i]
   b_id = df1["b_secid"][i]
   for j in range(len(f_data)-1)
       if j ==0
          continue
       elif (f_data[f_id][j] == math.nan) & (f_data["f_id"][j+1] == f_data["f_id"][j-1])
             f_data[f_id][j+1] = math.nan 
I dont know why the last line of code i.e. elif condition is not working.
Advertisement
Answer
If you were willing to abandon the loop idea you could:
dfo = df.mask(df.diff().eq(0)) print(dfo)
Result
A B C 0 12.0 14.0 16 1 15.0 16.0 17 2 NaN NaN 18 3 NaN 18.0 20
