Eu tenho um DataFrame simples como o seguinte:
Quero selecionar todos os valores da coluna 'Primeira Temporada' e substituir os que estão acima de 1990 por 1. Nesse exemplo, apenas o Baltimore Ravens teria o 1996 substituído por 1 (mantendo o restante dos dados intactos).
Eu usei o seguinte:
df.loc[(df['First Season'] > 1990)] = 1
Porém, ele substitui todos os valores dessa linha por 1, e não apenas os valores da coluna 'Primeira temporada'.
Como posso substituir apenas os valores dessa coluna?
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
. O que estou tentando fazer é basicamentedf['A'] = np.where(df['B'] in some_values, df['A']*2, df['A]
. Alguém tem uma idéia sobre isso?estranho que ninguém tenha essa resposta, a única parte que falta no seu código é a ['Primeira Temporada'] logo após o df e apenas remova seus colchetes dentro.
fonte
para condição única, ie.
( 'employrate'] > 70 )
usa isto:
portanto, sintaxe aqui é:
Para várias condições, ie.
(df['employrate'] <=55) & (df['employrate'] > 50)
usa isto:
portanto, sintaxe aqui é:
fonte
Explicação:
df.loc
recebe dois argumentos, 'índice de linha' e 'índice de coluna'. Estamos verificando se o valor é maior que 27 de cada valor da linha, na coluna "Primeira temporada" e substituindo-o por 1.fonte