TypeError: невозможно выполнить логическую настройку inplace для смешанных типов с не np.значение NaN

Я получаю ошибку TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value когда я пытаюсь заменить числовые значения в нескольких столбцах определенным строковым значением.

df =

TYPE  VD_1   VD_2    VD_3
AAA   1234   22122   2345
AAA   1234   2345    22122

вот как я это делаю:

df[df.isin([22122])] = "English"

или

df[df==22122] = "English"

1 ответов


если вы stack df, затем вы можете сравнить весь df со скалярным значением, заменить, а затем 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

или 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