Recibo el error TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value cuando intento reemplazar valores numéricos en varias columnas por un valor de cadena específico.
df = TYPE VD_1 VD_2 VD_3 AAA 1234 22122 2345 AAA 1234 2345 22122Así es como lo hago:
df[df.isin([22122])] = "English"o
df[df==22122] = "English"Si stack el df, puede comparar todo el df con el valor escalar, reemplazar y luego 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 o 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 EnglishMe doy cuenta de que esta es una pregunta antigua, pero creo que esta respuesta será útil para algunos, ya que permitirá reemplazar valores basados en condicionales complejos.
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 Tenga en cuenta que los valores en los que no se cumple la condición de la cláusula where se sustituyen por valores en other .