Explore Courses Blog Tutorials Interview Questions
0 votes
in Data Science by (18.4k points)

I have the dataframe as below:


ID  val

1   0.0

2   yes

3   1.0

4   0.0

5   yes

How do I match my previous value with my current value if the column val equals "yes"

I tried using the code below:

 df['val'] = df['val'].replace('yes', np.nan).bfill().astype(str) 

I am getting this output which is not what I wanted to.

ID  val

1   yes

2   yes

3   1.0

4   yes

5   yes

can we use np.where along with the bfill? 

1 Answer

0 votes
by (36.8k points)

You can use the below code:

df.loc[df['val'].shift(-1).eq('yes'), 'val'] = 'yes'


   ID  val

0   1  yes

1   2  yes

2   3  1.0

3   4  yes

4   5  yes

 If you want to know more about the Data Science then do check out the following Data Science which will help you in understanding Data Science from scratch

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

29.3k questions

30.6k answers


104k users

Browse Categories