ML85
ML85

Reputation: 715

Conditional filling of column based on string

I have a dataset which I have to fill conditional or dropping the conditional rows. But, I am still unsuccessful.

Idx Fruits Days Name
0 60 20 
1 15 85.5
2 10 62 Peter
3 40 90 Maria
4 5 10.2
5 92 66
6 65 87 John
7 50 1 Eric
8 50 0 Maria
9 80 87 John

Now, I have some empty cells. I can fill with fillna or regex or can drop empty cells. I want only first starting cells until the string starts, either dropping or filling with "."

Like below

Idx Fruits Days Name
0 60 20 .
1 15 85.5 .
2 10 62 Peter
3 40 90 Maria
4 5 10.2
5 92 66
6 65 87 John
7 50 1 Eric
8 50 0 Maria
9 80 87 John

and

Idx Fruits Days Name
2 10 62 Peter
3 40 90 Maria
4 5 10.2
5 92 66
6 65 87 John
7 50 1 Eric
8 50 0 Maria
9 80 87 John

Is there any possibility using pandas? or any looping?

Upvotes: 1

Views: 186

Answers (1)

NYC Coder
NYC Coder

Reputation: 7604

You can try this:

df['Name'] = df['Name'].replace('', np.nan)
df['Name'] = df['Name'].where(df['Name'].ffill().notna(), '.')
print(df)

   Idx  Fruits  Days   Name
0    0      60  20.0      .
1    1      15  85.5      .
2    2      10  62.0  Peter
3    3      40  90.0  Maria
4    4       5  10.2   
5    5      92  66.0   
6    6      65  87.0   John
7    7      50   1.0   Eric
8    8      50   0.0  Maria
9    9      80  87.0   John

Upvotes: 1

Related Questions