У меня есть простой DataFrame, подобный следующему:
Я хочу выбрать все значения в столбце «Первый сезон» и заменить те, которые превышают 1990 год, на 1. В этом примере только у Baltimore Ravens значение 1996 года будет заменено на 1 (оставив остальные данные без изменений).
Я использовал следующее:
df.loc[(df['First Season'] > 1990)] = 1
Но он заменяет все значения в этой строке на 1, а не только значения в столбце «Первый сезон».
Как я могу заменить только значения из этого столбца?
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
. То, что я пытаюсь сделать, в основномdf['A'] = np.where(df['B'] in some_values, df['A']*2, df['A]
. У кого-нибудь есть идеи по этому поводу?странно, что ни у кого нет этого ответа, единственная недостающая часть вашего кода - это ['First Season'] сразу после df и просто удалите фигурные скобки внутри.
источник
для одного условия, т.е.
( 'employrate'] > 70 )
использовать это:
поэтому синтаксис здесь:
Для нескольких условий, т.е.
(df['employrate'] <=55) & (df['employrate'] > 50)
использовать это:
поэтому синтаксис здесь:
источник
Объяснение:
df.loc
принимает два аргумента: «индекс строки» и «индекс столбца». Мы проверяем, превышает ли значение 27 значение каждой строки в столбце «Первый сезон», а затем заменяем его на 1.источник