Fonction Pandas pd.unique()

Pandas 通用函数Fonctions courantes de Pandas


pd.unique()est utilisée dans la bibliothèque Pandas pourobtenir des valeurs uniques à partir d'un tableaufonction. Elle renvoie toutes les valeurs non dupliquées du tableau d'entrée, en supprimant les doublons.

Il s'agit d'une opération courante en analyse de données, comme compter le nombre de valeurs distinctes dans une colonne, ou obtenir toutes les catégories d'une variable catégorielle.

Définition du mot: uniqueCela signifie « unique, distinctif » ; ici, cela fait référence au renvoi de valeurs non dupliquées depuis le tableau.


Syntaxe de base et paramètres

pd.unique()est une fonction de premier niveau de la bibliothèque Pandas, utilisée pour extraire des valeurs uniques d'un tableau.

Format de syntaxe

pd.unique(values)

Description du paramètre

  • Paramètre: values
    • Type : objet de type tableau, tel qu'une liste, une Series, un tableau unidimensionnel, etc.
    • Description : les données d'entrée à partir desquelles extraire les valeurs uniques. Cela peut être n'importe quelle structure de tableau unidimensionnel.

Description de la fonction

  • Valeur de retour: renvoie un ndarray (tableau NumPy) contenant toutes les valeurs uniques.
  • Effet: supprime les valeurs en double des données d'entrée, en conservant chaque valeur une seule fois.

Exemples

Utilisons une série d'exemples, du simple au complexe, pour maîtriser parfaitementpd.unique()son utilisation.

Exemple 1 : Utilisation de base - Extraction de valeurs uniques à partir d'une Series

Exemple

import pandas as pd
import numpy as np

# 1. Créer une Series contenant des valeurs en double
colors = pd.Series(['red', 'blue', 'green', 'red', 'blue', 'yellow', 'red'])

print(=== Series d'origine ===)
print(colors)

# 2. Utiliser pd.unique() pour obtenir les valeurs uniques
unique_values = pd.unique(colors)
print("\n=== pd.unique() Valeurs uniques ===")
print(unique_values)
print(f"\nNombre de valeurs uniques : {len(unique_values)}")

Sortie attendue :

=== 原始 Series ===
0       red
1      blue
2     green
3       red
4      blue
5    yellow
6       red
dtype: object

=== pd.unique() 唯一值 ===
['red' 'blue' 'green' 'yellow']
唯一值数量: 4

Explication du code :

  • La Series d'origine compte 7 éléments, mais seulement 4 valeurs uniques.
  • pd.unique()Renvoie un tableau NumPy contenant toutes les valeurs non dupliquées.
  • Le résultat renvoyé ne garantit pas l'ordre (mais il suit généralement l'ordre de première apparition).

Exemple 2 : Extraction des valeurs uniques à partir de listes et de tableaux

pd.unique()Il peut non seulement gérer les Series, mais aussi diverses structures de tableaux.

Exemple

import pandas as pd
import numpy as np

# 1. Extraire les valeurs uniques d'une liste
numbers = [1, 2, 3, 2, 1, 4, 5, 3, 2]
print(=== Liste d'origine ===)
print(numbers)

unique_numbers = pd.unique(numbers)
print("\n=== Valeurs uniques de la liste ===")
print(unique_numbers)
print(f"Type : {type(unique_numbers)}")

# 2. Extraire les valeurs uniques d'un tableau NumPy
arr = np.array(['a', 'b', 'a', 'c', 'b', 'd'])
print("\n=== Tableau NumPy ===")
print(arr)
print("Valeurs uniques :", pd.unique(arr))

# 3. Extraire d'une colonne DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Diana'],
    'city': ['Beijing', 'Shanghai', 'Beijing', 'Beijing', 'Guangzhou']
})
print("\n=== DataFrame ===")
print(df)
print("\nValeurs uniques de la colonne name :, pd.unique(df['name']))
print("Valeurs uniques de la colonne city :", pd.unique(df['city']))

Sortie attendue :

=== 原始列表 ===
[1, 2, 3, 2, 1, 4, 5, 3, 2]

=== 列表的唯一值 ===
[1 2 3 4 5]
Type: <class 'numpy.ndarray'>

=== NumPy 数组 ===
['a' 'b' 'a' 'c' 'b' 'd']
唯一值: ['a' 'b' 'c' 'd']

=== DataFrame ===
      name     city
0    Alice   Beijing
1      Bob  Shanghai
2  Charlie   Beijing
3    Alice   Beijing
4   Diana  Guangzhong

=== name 列的唯一值: ['Alice' 'Bob' 'Charlie' 'Diana']
=== city 列的唯一值: ['Beijing' 'Shanghai' 'Guangzhou']

Explication du code :

  • pd.unique()Il peut gérer les listes Python, les tableaux NumPy et les colonnes DataFrame.
  • Le résultat renvoyé est toujours un tableau NumPy unidimensionnel.
  • Lorsque vous travaillez avec un DataFrame, vous devez spécifier la colonne spécifique (en utilisant la syntaxe entre crochets).

Exemple 3 : Gestion des données numériques et tri

Lorsque vous traitez des valeurs uniques numériques, vous pouvez facilement effectuer un tri et une analyse statistique.

Exemple

import pandas as pd
import numpy as np

# 1. Une Series contenant des valeurs numériques dupliquées
scores = pd.Series([85, 90, 78, 85, 92, 90, 78, 88, 95])

print(=== Scores originaux ===)
print(scores)

# 2. Obtenir les valeurs uniques et les trier
unique_scores = pd.unique(scores)
print("\n=== Valeurs uniques (non triées) ===)
print(unique_scores)

# 3. Valeurs uniques triées
unique_sorted = np.unique(unique_scores)
print("\n=== Valeurs uniques (triées) ===)
print(unique_sorted)

# 4. Compter les occurrences de chaque valeur unique
print("\n=== Valeurs uniques et fréquences ===)
value_counts = pd.Series(scores).value_counts()
print(value_counts)

# 5. Obtenir des informations statistiques pour les valeurs uniques
print("\n=== Statistiques de base ===)
print(f"Nombre de valeurs uniques : {len(unique_scores)}")
print(f"Valeur minimale : {unique_scores.min()}")
print(f"Valeur maximale : {unique_scores.max()}")
print(f"Valeur moyenne : {unique_scores.mean():.2f}")

Sortie attendue :

>--- 原始分数 ---
0    85
1    90
2    78
85、90、78 各出现 2 次,88、95 各出现 1 次。
=== 唯一值及频次 ===
85    2
90    2
78    2
88    1
95    1
dtype: int

=== 基本统计 ===
唯一值数量: 5
最小值: 78
最大值: 95
平均值: 86.40

Explication du code :

  • Vous pouvez utilisernp.unique()pour trier les résultats.
  • Combiné avecvalue_counts()vous pouvez voir la fréquence de chaque valeur unique.
  • Le tableau des valeurs uniques peut être utilisé pour des calculs numériques comme un tableau normal.

Exemple 4 : Gestion des valeurs manquantes

pd.unique()Il renverra les valeurs manquantes (NaN) comme une valeur unique valide.

Exemple

import pandas as pd
import numpy as np

# 1. Données contenant des valeurs manquantes
data = pd.Series(['a', 'b', np.nan, 'a', None, 'c', np.nan, 'b'])

print(=== Données avec valeurs manquantes ===)
print(data)

# 2. Obtenir les valeurs uniques (NaN sera traité comme une valeur unique)
unique_with_nan = pd.unique(data)
print("\n=== Valeurs uniques incluant NaN ===)
print(unique_with_nan)
print(f"Nombre de valeurs uniques (y compris NaN) : {len(unique_with_nan)}")

# 3. Valeurs uniques après exclusion de NaN
unique_no_nan = pd.unique(data[data.notna()])
print("\n=== Valeurs uniques en excluant NaN ===)
print(unique_no_nan)
print(f"Nombre de valeurs uniques (en excluant NaN) : {len(unique_no_nan)}")

# 4. Utiliser isna() pour vérifier si NaN existe
has_nan = pd.isna(unique_with_nan).any()
print(f"\nSi NaN existe : {has_nan}")

Sortie attendue :

=== 包含缺失值的数据 ===
0       a
1       b
2     NaN
3       a
4    None
5       different 'c' appears twice: None and NaN are both treated as missing values.
print("\n=== 唯一值数量(含 NaN): 3 ===")
print("['a', 'b', nan]")

=== 排除 NaN 后的唯一值 ===
['a', 'b', 'c']
唯一值数量(不含 NaN): 3

Explication du code :

  • NaN et None sont tous deux traités comme des valeurs manquantes et ne comptent que pour une seule dans les valeurs uniques.
  • Vous pouvez utiliserdata[data.notna()]pour filtrer d'abord les valeurs manquantes, puis extraire les valeurs uniques.
  • pd.isna()Vous pouvez vérifier si le tableau des valeurs uniques contient NaN.

Astuce : pd.unique()La valeur de retour est un tableau NumPy. Si vous avez besoin de renvoyer un objet pandas (tel qu'une Series), vous pouvez utiliserSeries.unique()méthode, qui renverra une Series.

Pandas 常用函数Fonctions courantes de Pandas

Autres extensions