Olá, Carlos! Tudo bom?
Na operação
df1[df1 > 0] = "A"
Nós estamos fazendo uma alteração no nosso pd.DataFrame
, fazendo que todos os números positivos virem o caractere A. E depois que rodamos essa linha de código, temos a seguinte mudança:
O df1
que era:
| 0 | 1 | 2 |
---|
Linha0 | 1 | 2 | 3 |
Linha1 | 4 | 5 | 6 |
Linha2 | 7 | 8 | 9 |
Passa a ser:
| 0 | 1 | 2 |
---|
Linha0 | A | A | A |
Linha1 | A | A | A |
Linha2 | A | A | A |
Agora se nós tentarmos rodar a mesma célula novamente com o comando df[df > 0]
, esse comando é inválido, pois o teste lógico não funciona para os caracteres "A". Não temos como saber qual caractere é maior que 0, por isso é retornado o erro acima.
Para resolver, basta executar as linhas de código anteriores onde fazemos a definição de df1
e df2
, então precisamos executar antes em sequência os comandos:
import pandas as pd
data = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
df1 = pd.DataFrame(data = data)
index = ['Linha' + str(i) for i in range(3)]
columns = ['Coluna' + str(i) for i in range(3)]
df2 = pd.DataFrame(data = data, index = index, columns = columns)
Agora podemos novamente fazer a manipulação.
Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!