Remover duplicados é uma habilidade essencial para obter contagens precisas, porque você geralmente não quer contar a mesma coisa várias vezes. Em Python, isso pode ser feito com o módulo pandas, que tem um método chamado drop_duplicates.
Vamos entender como usá-lo com a ajuda de alguns exemplos.
Removendo nomes duplicados
Imagine que você tem um dataframe com visitas ao veterinário e o consultório quer saber quantos cães de cada raça passaram por lá. Porém, existem cães como Max e Stella que foram ao veterinário mais de uma vez no seu conjunto de dados. Por isso, você não pode simplesmente contar o número de cada raça na coluna de raças.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-06-07 Max Labrador 28.3522018-01-17 Stella Chihuahua 1.5132019-10-19 Lucy Chow Chow 24.07..............712018-01-20 Stella Chihuahua 2.83722019-06-07 Max Chow Chow 24.01732018-08-20 Lucy Chow Chow 24.40742019-04-22 Max Labrador 28.54Tecnologia
Para resolver isso, você removeria as linhas que contêm um nome de cão já listado anteriormente; em outras palavras, extrairia apenas um cão de cada nome do dataset.
Você faz isso usando o método drop_duplicates. Ele recebe o argumento subset, que é a coluna na qual queremos buscar duplicatas — neste caso, queremos todos os nomes únicos.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-06-07 Max Chow Chow 24.0122019-03-19 Charlie Poodle 24.9532018-01-17 Stella Chihuahua 1.5142019-10-19 Lucy Chow Chow 24.0772019-03-30 Cooper Schnauzer 16.91102019-01-04 Bernie St. Bernard 74.98Tecnologia
Nesse caso, precisamos considerar mais do que apenas o name ao remover duplicados. Como Max e Max são de raças diferentes, podemos remover as linhas com pares de nome e raça que já apareceram antes no dataset.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-03-13 Max Chow Chow 24.1322019-03-19 Charlie Poodle 24.9532018-01-17 Stella Chihuahua 1.5142019-10-19 Lucy Chow Chow 24.0762019-06-07 Max Labrador 28.3572019-03-30 Cooper Schnauzer 16.91102019-01-04 Bernie St. Bernard 74.98Tecnologia
Para basear a remoção de duplicados em várias colunas, podemos passar uma lista de nomes de colunas para o argumento subset — neste caso, name e breed.
Agora os dois Max foram incluídos.
Exemplo interativo
Neste exercício, você vai criar alguns novos DataFrames usando valores únicos de sales. sales está disponível e o pandas foi importado como pd.
Você fará o seguinte:
Primeiro, remover as linhas de sales com pares duplicados de store e type, salvar como store_types e imprimir o head.
Depois, remover as linhas de sales com pares duplicados de store e department, salvar como store_depts e imprimir o head.
Filtrar as linhas que são semanas de feriado e remover datas duplicadas, salvando como holiday_dates.
Por fim, selecionar a coluna date de holiday_dates e imprimir o dataframe holiday_dates.
# Drop duplicate store/type combinations
store_types = sales.drop_duplicates(subset=["store","type"])print(store_types.head())# Drop duplicate store/department combinations
store_depts = sales.drop_duplicates(subset=["store","department"])print(store_depts.head())# Subset the rows that are holiday weeks and drop duplicate dates
holiday_dates = sales[sales["is_holiday"]].drop_duplicates(subset="date")# Print date col of holiday_datesprint(holiday_dates["date"])Tecnologia
Ao executar o código acima, obtemos o seguinte resultado:
store type department date weekly_sales is_holiday temperature_c fuel_price_usd_per_l unemployment
01A12010-02-0524924.50 False 5.7280.6798.1069012A12010-02-0535034.06 False 4.5500.6798.32417984A12010-02-0538724.42 False 6.5330.6868.62326996A12010-02-0525619.00 False 4.6830.6797.259359310B12010-02-0540212.84 False 12.4110.7829.765
store type department date weekly_sales is_holiday temperature_c fuel_price_usd_per_l unemployment
01A12010-02-0524924.50 False 5.7280.6798.106121A22010-02-0550605.27 False 5.7280.6798.106241A32010-02-0513740.12 False 5.7280.6798.106361A42010-02-0539954.04 False 5.7280.6798.106481A52010-02-0532229.38 False 5.7280.6798.1064982010-09-106912011-11-2523152010-02-1267352012-09-0768102010-12-3168152012-02-1068202011-09-09Name: date,dtype: datetime64[ns]Tecnologia
Use o Python Pandas e selecione colunas de DataFrames. Siga nosso tutorial com exemplos de código e aprenda diferentes maneiras de selecionar seus dados hoje mesmo!
Explore a análise de dados com Python. Os DataFrames do Pandas facilitam a manipulação de seus dados, desde a seleção ou substituição de colunas e índices até a remodelagem dos dados.
Remover duplicados é uma habilidade essencial para obter contagens precisas, porque você geralmente não quer contar a mesma coisa várias vezes. Em Python, isso pode ser feito com o módulo pandas, que tem um método chamado
drop_duplicates.Vamos entender como usá-lo com a ajuda de alguns exemplos.
Removendo nomes duplicados
Imagine que você tem um dataframe com visitas ao veterinário e o consultório quer saber quantos cães de cada raça passaram por lá. Porém, existem cães como Max e Stella que foram ao veterinário mais de uma vez no seu conjunto de dados. Por isso, você não pode simplesmente contar o número de cada raça na coluna de raças.
Para resolver isso, você removeria as linhas que contêm um nome de cão já listado anteriormente; em outras palavras, extrairia apenas um cão de cada nome do dataset.
Você faz isso usando o método
drop_duplicates. Ele recebe o argumentosubset, que é a coluna na qual queremos buscar duplicatas — neste caso, queremos todos os nomes únicos.Mas e se houver cães com o mesmo nome?
Removendo pares duplicados
Nesse caso, precisamos considerar mais do que apenas o
nameao remover duplicados. ComoMaxeMaxsão de raças diferentes, podemos remover as linhas com pares de nome e raça que já apareceram antes no dataset.Para basear a remoção de duplicados em várias colunas, podemos passar uma lista de nomes de colunas para o argumento subset — neste caso, name e breed.
Agora os dois Max foram incluídos.
Exemplo interativo
Neste exercício, você vai criar alguns novos DataFrames usando valores únicos de
sales.salesestá disponível e opandasfoi importado comopd.Você fará o seguinte:
salescom pares duplicados destoreetype, salvar comostore_typese imprimir o head.salescom pares duplicados destoreedepartment, salvar comostore_deptse imprimir o head.holiday_dates.datedeholiday_datese imprimir o dataframeholiday_dates.Ao executar o código acima, obtemos o seguinte resultado:
Experimente você mesmo.
Para saber mais sobre contagem e agregação de dados, confira este vídeo do nosso curso Data Manipulation with pandas.
Este conteúdo foi extraído do curso Data Manipulation with pandas da DataCamp, por Maggie Matsui e Richie Cotton.