Home > Software engineering >  How to get the index of the last condition and assign it to other columns
How to get the index of the last condition and assign it to other columns

Time:06-29

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

CodePudding user response:

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