Pandas: encuentre valores únicos de varias columnas

Prerrequisito: Pandas 

En este artículo, discutiremos varios métodos para obtener valores únicos de múltiples columnas de Pandas DataFrame.

Método 1: Usar los métodos pandas Unique() y Concat()

La serie Pandas, también conocida como columnas, tiene un método único() que filtra solo los valores únicos de una columna. El primer resultado muestra solo FirstNames únicos. Podemos extender este método usando el método pandas concat() y concatenar todas las columnas deseadas en 1 sola columna y luego encontrar el único de la columna resultante.

Python3

import pandas as pd
import numpy as np
 
# Creating a custom dataframe.
df = pd.DataFrame({'FirstName': ['Arun', 'Navneet', 'Shilpa',
                                 'Prateek', 'Pyare', 'Prateek'],
                    
                   'LastName': ['Singh', 'Yadav', 'Yadav', 'Shukla',
                                'Lal', 'Mishra'],
                    
                   'Age': [26, 25, 25, 27, 28, 30]})
 
# To get unique values in 1 series/column
print(f"Unique FN: {df['FirstName'].unique()}")
 
# Extending the idea from 1 column to multiple columns
print(f"Unique Values from 3 Columns:\
{pd.concat([df['FirstName'],df['LastName'],df['Age']]).unique()}")

Producción:

FN único: [‘Arun’ ‘Navneet’ ‘Shilpa’ ‘Prateek’ ‘Pyare’]

Valores únicos de 3 columnas:[‘Arun’ ‘Navneet’ ‘Shilpa’ ‘Prateek’ ‘Pyare’ ‘Singh’ ‘Yadav’ ‘Shukla’

 ‘Lal’ ‘Mishra’ 26 25 27 28 30]

Método 2: Usar el método Numpy.unique()

Con la ayuda del método np.unique(), podemos obtener los valores únicos de una array proporcionada como parámetro en el método np.unique().

Nota: Este enfoque tiene una limitación, es decir, no podemos combinar columnas str y numéricas juntas , y por lo tanto, si surge una situación en la que necesitamos agrupar columnas de diferentes tipos de datos, entonces vaya al Método 1.

Python3

import pandas as pd
import numpy as np
 
# Creating a custom dataframe.
df = pd.DataFrame({'FirstName': ['Arun', 'Navneet', 'Shilpa',
                                 'Prateek', 'Pyare', 'Prateek'],
                    
                   'LastName': ['Singh', 'Yadav', 'Yadav', 'Shukla',
                                'Lal', 'Mishra'],
                    
                   'Age': [26, 25, 25, 27, 28, 30]})
 
print(np.unique(df[['LastName', 'FirstName']].values))
 
# Will throw error as Age is numerical datatype
# and LastName is str
# print(np.unique(df[['LastName','Age']].values))

Producción: 

[‘Arun’ ‘Lal’ ‘Mishra’ ‘Navneet’ ‘Prateek’ ‘Pyare’ ‘Shilpa’ ‘Shukla’

 ‘Singh’ ‘Yadav’]

Método 3: usar conjuntos en Python 

El Conjunto tiene una propiedad que solo contiene valores únicos y, por lo tanto, convertimos series individuales en un objeto Conjunto y luego tomamos la unión del conjunto de ellos. A diferencia del Método 2, esto también funciona para todas las combinaciones de tipos de datos.  

Python3

import pandas as pd
import numpy as np
 
 
# Creating a custom dataframe.
df = pd.DataFrame({'FirstName': ['Arun', 'Navneet', 'Shilpa',
                                 'Prateek', 'Pyare', 'Prateek'],
                    
                   'LastName': ['Singh', 'Yadav', 'Yadav', 'Shukla',
                                'Lal', 'Mishra'],
                    
                   'Age': [26, 25, 25, 27, 28, 30]})
 
# Typecasting pandas series into set and then
# taking set union (|)
print(set(df.FirstName) | set(df.LastName) | set(df.Age))

Producción: 

{‘Singh’, ‘Pyare’, ‘Mishra’, 27, ‘Navneet’, ‘Arun’, ‘Lal’, ‘Shukla’, 30, 25, 26, ‘Yadav’, 28, ‘Shilpa’, ‘Prateek’ }

Publicación traducida automáticamente

Artículo escrito por arun singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *