Oi Gabriel, tudo bem?
Testei o código que você compartilhou e tive algumas percepções. O seu dataframe está considerando as linhas sem valor no condomínio ou aluguel como NaN
(que significa Not a Number
- não é um número).
Isso pode ter acontecido por alguma diferença no tratamento de dados feito anteriormente ou até alguma diferença de versão de biblioteca.
Então, o filtro df.query('Valor == 0 or Condominio == 0')
não está retornando nenhuma linha, pois não encontra os valores zero.
Nesse caso, é necessário utilizar outra estratégia. O pandas possui o método isna
, que identifica os valores nulos. Conheça melhor na documentação. Para criar o dataframe apenas com os valores nulos nas colunas especificadas, Valor
e Condomínio
, faça assim:
df[df[['Valor', 'Condominio']].isna().any(axis=1)]
Filtramos a colunas do dataframe, adicionamos o método isna
e então o método any
para designar que não precisam ser todos os valores nulos. Pode ser ou em Valor
, ou em Condomínio
.
Então, obtemos a lista de índices desse dataframe com o método index
e atribuímos à variável nulos
:
nulos = df[df[['Valor', 'Condominio']].isna().any(axis=1)].index
nulos
Prontinho. Agora, basta seguir com a exclusão das linhas especificadas, utilizando o drop
:
df = df.drop(nulos, axis=0)
Espero ter ajudado, Gabriel. Se ficou alguma dúvida, é só falar.
Abraço.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!