Я просто практикую \ изучаю панд и использую набор данных Pokemon
из Kaggle.
Следующие две строки кода работают нормально и дают точно такой же результат:
df.loc[df['Type 1'] == 'Fire', 'Type 1'] = 'Flamer'
df['Type 1'] = np.where(df['Type 1'] == 'Fire', 'Flamer', df['Type 1'])
Оба заменяют значение «Огонь» в столбце «Тип 1» на «Фламер».
Однако я пытаюсь повторить то же поведение в нескольких столбцах.
В следующих двух строках кода первая работает, вторая не работает.
Точная ошибка также предоставляется:
df.loc[df['Total'] > 500, ['Generation', 'Legendary']] = 'TEST VALUE'
df[['Generation', 'Legendary']] = np.where(df['Total'] > 500, 'TEST VALUE', df[['Generation', 'Legendary']])
Traceback (most recent call last):
File "C:/Users/Mark/PycharmProjects/main/main.py", line 152, in <module>
df[['Generation', 'Legendary']] = np.where(df['Total'] > 500, 'TEST VALUE', df[['Generation', 'Legendary']])
ValueError: operands could not be broadcast together with shapes (800,) () (800,2)
Я не понимаю, что пытается сказать мне эта ошибка.
Могу ли я не реплицировать: df.loc [df ['Total']> 500, ['Generation', 'Legendary']] = 'TEST VALUE', используя np.where ()?