Skip to content
Advertisement

For Loop to populate Pandas dataframe

In below dataframe, I need to add +1 for all values which have 0:

col_a
0
a
0
b
0
c

The end result should look something like below:

col_a
1
a
2
b
3
c

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:

m = df['col_a'].eq('0')
df.loc[m, 'col_a'] = m.cumsum()

  col_a
0     1
1     a
2     2
3     b
4     3
5     c
User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement