Issue
I am trying to put 0 or 1 in place of the null rows of a column using lambda function, but my code doesn't make any changes in the data.
df[df['a'].isnull()]['a']=df[df['a'].isnull()].apply(lambda x:1 if (x.b==0 and x.c==0) else
0,axis=1)
Where I am wrong in this?? sample table
Solution
You can use loc
to specifically fill the null value rows in your DataFrame. When you're using the apply
method you can use it on the entire DataFrame, you do not need to filter for NULL values there. The loc
will take care of only filling the rows which meet the NULL condition. This should work :
df['a'].loc[df['a'].isnull()] = df.apply(lambda x:1 if (x.b==0 and x.c==0) else
0,axis=1)
Answered By - Shivam Roy
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.