In below dataframe, I need to add +1 for all values which have 0:
JavaScript
x
8
1
col_a
2
0
3
a
4
0
5
b
6
0
7
c
8
The end result should look something like below:
JavaScript
1
8
1
col_a
2
1
3
a
4
2
5
b
6
3
7
c
8
I have tried ‘for loops’ but does not seem to work. Any suggestions?
Advertisement
Answer
Let us try cumsum
to create a sequential counter then update values in col_a
using boolean indexing:
JavaScript
1
3
1
m = df['col_a'].eq('0')
2
df.loc[m, 'col_a'] = m.cumsum()
3
JavaScript
1
8
1
col_a
2
0 1
3
1 a
4
2 2
5
3 b
6
4 3
7
5 c
8