В pandas df все ячейки в столбцах от индекса 4 до конца имеют нулевое значение или одну из двух возможных строк, давайте использовать «a» и «b». Я хочу заменить каждое значение числом: «a» на 1, «b» на 2 и null на 0. Я бы предпочел изменить несколько столбцов одновременно, а не использовать цикл.
Я пытался использовать apply с lambda, потому что он работал для более раннего проекта, но он не работает для этого, и когда я использую его только в одном столбце, он меняет все на 0. Я ''Мы также пытались присвоить значения другим фрагментом кода ниже.
df.iloc[:, 4:] = df.iloc[:, 4:].apply(lambda x:1 if x == 'a' else(2 if x == 'b' else 0))
df[df.iloc[:,4]=='a',4] = 1
Значение истинности Серии неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all (). ',', Встречающиеся в индексе [B]
Объекты 'Series' являются изменяемымипоэтому их нельзя хешировать