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

Manav Narula 30 enero 2023
  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
Consigue los valores únicos de los pandas en la columna y ordénalos

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
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Pandas DataFrame