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.

Tags:

Python

Pandas