How to get the index of the last condition and assign it to other columns

Viewed 33

condition is column 'A' > 0.5

I want to calculate the index of the last condition established and assign it to column 'cond_index'

          A    cond_index
0  0.001566           NaN
1  0.174676           NaN
2  0.553506           2
3  0.583377           3
4  0.418854           3
5  0.836482           5
6  0.927756           6
7  0.800908           7
8  0.277646           7
9  0.388323           7
1 Answers

Use Index.to_series with replace missing values if not match condition in Series.where with comapre for greater like 0.5 and last forward filling missing values:

df['new'] = df.index.to_series().where(df['A'].gt(0.5)).ffill()
print (df)
          A  cond_index  new
0  0.001566         NaN  NaN
1  0.174676         NaN  NaN
2  0.553506         2.0  2.0
3  0.583377         3.0  3.0
4  0.418854         3.0  3.0
5  0.836482         5.0  5.0
6  0.927756         6.0  6.0
7  0.800908         7.0  7.0
8  0.277646         7.0  7.0
9  0.388323         7.0  7.0
Related