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

método drop_duplicates não funciona no pycharm

Boa tarde, gostaria de saber porquê esse metodo não está funcionando:

import pandas as pd
dados = pd.read_csv('aluguel.csv', sep = ';')
list(dados['Tipo'].drop_duplicates()) # removendo elementos repetidos

residencial = ['Quitinete',
'Casa',
'Apartamento',
'Casa de Condomínio',
'Casa de Vila']


selecao = dados['Tipo'].isin(residencial)
dados_residencial = dados[selecao]

dados_residencial = pd.DataFrame(dados_residencial)
dados_residencial['Tipo'].drop_duplicates(inplace=True)
dados_residencial.index = range(dados_residencial.shape[0])

print(f'\033[1;32m{dados_residencial}')

O retorno é esse:

              Tipo                Bairro  Quartos  ...   Valor  Condominio  IPTU
0        Quitinete            Copacabana        1  ...  1700.0       500.0  60.0
1             Casa       Jardim Botânico        2  ...  7000.0         NaN   NaN
2      Apartamento                Centro        1  ...   800.0       390.0  20.0
3      Apartamento          Higienópolis        1  ...   800.0       230.0   NaN
4      Apartamento          Vista Alegre        3  ...  1200.0         NaN   NaN
...            ...                   ...      ...  ...     ...         ...   ...
22575  Apartamento                 Méier        2  ...   900.0       490.0  48.0
22576    Quitinete                Centro        0  ...   800.0       350.0  25.0
22577  Apartamento           Jacarepaguá        3  ...  1800.0       800.0  40.0
22578  Apartamento  São Francisco Xavier        2  ...  1400.0       509.0  37.0
22579  Apartamento                Leblon        2  ...  3000.0       760.0   NaN

[22580 rows x 9 columns]

Process finished with exit code 0

Não fez a seleção só dos elementos únicos, gostaria de saber o que há de errado

2 respostas
solução!

Olá, Paulo, tudo bem?

Quando você utiliza esse comando dados_residencial['Tipo'].drop_duplicates(inplace=True) não há alteração do seu código porque o método drop_duplicates(), por padrão, remove linhas duplicadas baseadas em todas as colunas. Ou seja, mesmo que tenhamos várias respostas, por exemplo, do Tipo Apartamento, eles não se repetem nas outras colunas (Bairro, Quartos, Valor...) e por isso são mantidos.

Para remover as duplicatas de uma coluna específica pelo método drop_duplicates() precisamos utilizar o argumento subsetque recebe a coluna do nosso DataFrame que queremos fazer essa seleção. Por exemplo, podemos utilizar dessa forma no Pycharmdados_residencial.drop_duplicates(subset=['Tipo'], inplace=True).

Entretanto, nesse exemplo, ele só manteria as linhas dos primeiros casos em que foi detectado cada tipo e os valores das outras variáveis das colunas dessa linha, como podemos ver abaixo:

                   Tipo           Bairro  Quartos  ...    Valor  Condominio  IPTU
0             Quitinete       Copacabana        1  ...   1700.0       500.0  60.0
1                  Casa  Jardim Botânico        2  ...   7000.0         NaN   NaN
3           Apartamento           Centro        1  ...    800.0       390.0  20.0
7    Casa de Condomínio  Barra da Tijuca        5  ...  22000.0         NaN   NaN
117        Casa de Vila          Piedade        2  ...   1300.0         NaN   NaN

[5 rows x 9 columns]

 

Para que apenas exibissémos a lista dos tipos de residenciais deveríamos fazer como indicado pelo professor durante a aula:

# Usando print para que no Pycharm seja possível visualizar o que esse comando reproduz de maneira semelhante ao Notebook
print(list(dados_residencial['Tipo'].drop_duplicates()))

 

Que resultaria em:

['Quitinete', 'Casa', 'Apartamento', 'Casa de Condomínio', 'Casa de Vila']

 

Ficou mais claro?

Qualquer dúvida é só chamar!

Abraços e bons estudos!

Muito Obrigado