Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro imoveis.fillna()

Ao tentar fazer o código:

imoveis.fillna({'Condominio':0,'IPTU':0}, inplace=True)
imoveis

Recebo o erro:

A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  self._update_inplace(new_data)

Sempre que eu coloco o valor Inplace=True.

Aí tenho que fazer uma cópia do DataFrame e nele fazer o Fillna.

Por que isso acontece?

3 respostas

Olá Romeu tudo bem com você???

Eu não entendi muito bem o que você deseja...no caso, você gostaria de deixar a Serie "Condominio" e a "IPTU" zeradas?

Se for isso, aqui funcionou o que havia feito:

df.fillna({'Condominio':0,'IPTU':0}, inplace=True)
df


Tipo    Bairro    Quartos    Vagas    Suites    Area    Valor    Condominio    IPTU
0    Quitinete    Copacabana    1    0    0    40    1700.0    0    0
1    Casa    Jardim Botânico    2    0    1    100    7000.0    0    0
2    Conjunto Comercial/Sala    Barra da Tijuca    0    4    0    150    5200.0    0    0
3    Apartamento    Centro    1    0    0    15    800.0    0    0
4    Apartamento    Higienópolis    1    0    0    48    800.0    0    0
...    ...    ...    ...    ...    ...    ...    ...    ...    ...
32955    Quitinete    Centro    0    0    0    27    800.0    0    0
32956    Apartamento    Jacarepaguá    3    1    2    78    1800.0    0    0
32957    Apartamento    São Francisco Xavier    2    1    0    48    1400.0    0    0
32958    Apartamento    Leblon    2    0    0    70    3000.0    0    0
32959    Conjunto Comercial/Sala    Centro    0    0    0    250    6500.0    0    0
32960 rows × 9 columns

Não precisei criar uma cópia do DF para aplicar o fillna

Se você não quiser estas colunas, poderia dar drop nelas, no lugar de zerar o conteúdo.

df.drop(['IPTU', 'Valor', 'Condominio'], axis=1)

    Tipo    Bairro    Quartos    Vagas    Suites    Area
0    Quitinete    Copacabana    1    0    0    40
1    Casa    Jardim Botânico    2    0    1    100
2    Conjunto Comercial/Sala    Barra da Tijuca    0    4    0    150
3    Apartamento    Centro    1    0    0    15
4    Apartamento    Higienópolis    1    0    0    48
...    ...    ...    ...    ...    ...    ...
32955    Quitinete    Centro    0    0    0    27
32956    Apartamento    Jacarepaguá    3    1    2    78
32957    Apartamento    São Francisco Xavier    2    1    0    48
32958    Apartamento    Leblon    2    0    0    70
32959    Conjunto Comercial/Sala    Centro    0    0    0    250
32960 rows × 6 columns

Eu escrevi um artigo para Alura que sairá sobre esse assunto e usando essa base de dados, mostrando o tratamento. Fique de olho no sininho para saber quando for publicado.

Fico aguardando sua resposta quanto ao que está buscando fazer e aí a gente resolve hehe

solução!

Ahh e mais uma coisa que me esqueci. A mensagem que recebeu "A value is trying to be set on a copy of a slice from a DataFrame", não se trata necessariamente de um erro, mas de uma mensagem informando que talvez o resultado esperado seja diferente.

Sugiro que dê uma olhada nesse artigo AQUI sobre o assunto.

Abraços!

Valeu Victor, agora entendi o porquê do erro.

Por um momento achei que inviabilizava o código.

Valeuuu