How To Avoid Nan When Using Np.where Function In Python?
I have a dataframe like this, col1 col2 col3 1 apple a,b 2 car c 3 dog a,c 4 dog NaN I tried to create three new columns, a,b and c, w
Solution 1:
What I will do
s=df.col2.str.get_dummies(sep=',')
Out[29]:
a b c
0 1 1 0
1 0 0 1
2 1 0 1
3 0 0 0
df=pd.concat([df,s],axis=1)
Solution 2:
You can use fillna(False)
.
You are using Boolean indexing so always the values corresponding to NaN will be 0
df['a']= np.where(df['col2'].str.contains('a').fillna(False),1,0)
df['b']= np.where(df['col2'].str.contains('b').fillna(False),1,0)
df['c']= np.where(df['col2'].str.contains('c').fillna(False),1,0)
Output:
col1 col2 col3 ab c
01 apple a,b10012 car c 10123 dog a,c 00034 dog NaN 000
Post a Comment for "How To Avoid Nan When Using Np.where Function In Python?"