TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value
If you stack
the df, then you can compare the entire df against the scalar value, replace and then unstack
:
In [122]:
stack = df.stack()
stack[ stack == 22122] = 'English'
stack.unstack()
Out[122]:
TYPE VD_1 VD_2 VD_3
0 AAA 1234 English 2345
1 AAA 1234 2345 English
or replace
:
In [125]:
df.replace(22122,'English', inplace=True)
df
Out[125]:
TYPE VD_1 VD_2 VD_3
0 AAA 1234 English 2345
1 AAA 1234 2345 English
I realize this is an old question, but I believe this answer will be useful for some, as it will allow for replacing values based on complex conditionals.
In [17]: df = df.where(df!=22122, other="English")
In [18]: df
Out[18]:
TYPE VD_1 VD_2 VD_3
0 AAA 1234 English 2345
1 AAA 1234 2345 English
Note that values where the condition in the where clause is not met are replaced by values in other
.