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