Obtenha Valores Únicos de Pandas em Coluna e Classifique-os

  1. Obter valores únicos na Coluna DataFrame de Pandas com o método unique
  2. Obter valores únicos na coluna DataFrame de Pandas com o método drop_duplicates
  3. Ordenar uma coluna em Pandas DataFrame

Este artigo irá introduzir como obter valores únicos na coluna Pandas DataFrame.

Por exemplo, suponha que temos um DataFrame composto por indivíduos e as suas profissões, e queremos saber o número total de profissões. Nesse caso, não podemos simplesmente utilizar a contagem total de filas para determinar o total de profissões únicas, porque muitas pessoas podem ter o mesmo emprego. Para tais situações, podemos utilizar as funções unique() e drop_duplicates() fornecidas pela biblioteca Pandas.

É também importante saber como ordenar o DataFrame, uma vez que pode ajudar a visualizar e compreender os dados. As funções sorted() e sort_values() podem ajudar a conseguir isto.

Vamos ordenar e remover o DataFrame seguinte neste tutorial.

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[7,1,5,4,2,1,4,4,8],'B':[1,2,8,5,3,4,2,6,8]})

print(df)

Resultado:

   A  B
0  7  1
1  1  2
2  5  8
3  4  5
4  2  3
5  1  4
6  4  2
7  4  6
8  8  8

Obter valores únicos na Coluna DataFrame de Pandas com o método unique

O método Pandas Series unique() é utilizado quando lidamos com uma única coluna de um DataFrame e devolve todos os elementos únicos de uma coluna. A saída final utilizando a função unique() é um array.

Exemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[7,1,5,4,2,1,4,4,8],'B':[1,2,8,5,3,4,2,6,8]})

print(df['A'].unique())
print(type(df['A'].unique()))

Resultado:

[7 1 5 4 2 8]
numpy.ndarray

Obter valores únicos na coluna DataFrame de Pandas com o método drop_duplicates

drop_duplicates() pode ser aplicado ao DataFrame ou ao seu subconjunto e preserva o tipo do objecto DataFrame. Também é considerada uma opção mais rápida quando se lida com grandes conjuntos de dados para remover valores duplicados.

Exemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[7,1,5,4,2,1,4,4,8],'B':[1,2,8,5,3,4,2,6,8]})

print(df.drop_duplicates(subset = "A"))
print(type(df.drop_duplicates(subset = "A")))

Resultado:

   A  B
0  7  1
1  1  2
2  5  8
3  4  5
4  2  3
8  8  8
pandas.core.frame.DataFrame

Ordenar uma coluna em Pandas DataFrame

Podemos utilizar o método sorted() para ordenar uma coluna, mas ele converte o resultado final para um objecto do tipo lista. Podemos também ordenar os valores da coluna por ordem decrescente, colocando o parâmetro reversed como true.

O exemplo seguinte ordena a coluna em ordem ascendente e remove os valores duplicados:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[7,1,5,4,2,1,4,4,8],'B':[1,2,8,5,3,4,2,6,8]})

df_new = df.drop_duplicates(subset = "A")

print(sorted(df_new['A']))
print(type(sorted(df_new['A'])))

Resultado:

[1, 2, 4, 5, 7, 8]
list

sort_values() é outra opção flexível para ordenar um DataFrame. Aqui podemos especificar a coluna a ser ordenada utilizando o parâmetro por e se a ordem é ascendente ou descendente utilizando o parâmetro ascending. Preserva o tipo de objecto como Pandas DataFrame.

O exemplo seguinte ordena a coluna em ordem decrescente e remove os valores duplicados:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[7,1,5,4,2,1,4,4,8],'B':[1,2,8,5,3,4,2,6,8]})

df_new = df.drop_duplicates(subset = "A")

print(df_new.sort_values(by = 'A', ascending = False))
type(df_new.sort_values(by = 'A'))

Resultado:

   A  B
8  8  8
0  7  1
2  5  8
3  4  5
4  2  3
1  1  2
pandas.core.frame.DataFrame

Artigo relacionado - Pandas DataFrame

  • Como adicionar uma nova coluna ao DataFrame existente com valor padrão em Pandas
  • Converter Pandas em CSV sem índice