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