Consigue los valores únicos de los pandas en la columna y ordénalos

  1. Obtener valores únicos en la columna Pandas DataFrame con el método unique
  2. Obtener valores únicos en la columna Pandas DataFrame con el método drop_duplicates
  3. Ordenar una columna en Pandas DataFrame

Este artículo presentará cómo obtener valores únicos en la columna de Pandas DataFrame.

Por ejemplo, supongamos que tenemos un DataFrame compuesto por individuos y sus profesiones, y queremos saber el número total de profesiones. En ese caso, no podemos simplemente utilizar el total de filas para determinar el total de profesiones únicas porque muchas personas pueden tener el mismo trabajo. Para tales situaciones, podemos usar las funciones unique() y drop_duplicates() proporcionadas por la biblioteca de Pandas.

También es importante saber cómo ordenar el DataFrame ya que puede ayudar a visualizar y comprender los datos. Las funciones sorted() y sort_values() pueden ayudar a conseguirlo.

Vamos a ordenar y eliminar el siguiente DataFrame en este 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

Obtener valores únicos en la columna Pandas DataFrame con el método unique

El método Pandas Series unique() se utiliza cuando tratamos con una sola columna de un DataFrame y devuelve todos los elementos únicos de una columna. La salida final usando la función unique() es un array.

Ejemplo:

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

Obtener valores únicos en la columna Pandas DataFrame con el método drop_duplicates

drop_duplicates() puede aplicarse al DataFrame o a su subconjunto y conserva el tipo del objeto DataFrame. También se considera una opción más rápida cuando se trata de grandes conjuntos de datos para eliminar los valores duplicados.

Ejemplo:

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 una columna en Pandas DataFrame

Podemos usar el método sorted() para ordenar una columna, pero convierte el resultado final en un objeto de tipo lista. También podemos ordenar los valores de las columnas en orden descendente poniendo el parámetro reversed como True.

El siguiente ejemplo ordena la columna en orden ascendente y elimina los 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() es otra opción flexible para ordenar un DataFrame. Aquí podemos especificar la columna a ordenar usando el parámetro por y si el orden es ascendente o descendente usando el parámetro ascending. Preserva el tipo de objeto como Pandas DataFrame.

El siguiente ejemplo ordena la columna en orden descendente y elimina los 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

Artículo relacionado - Pandas DataFrame

  • Cómo convertir el índice de un Dataframe de Pandas en una columna
  • Cómo clasificar Pandas DataFrame por los valores de una columna