Pandas pd.unique()-Funktion

Pandas 通用函数Gängige Pandas-Funktionen


pd.unique()wird in der Pandas-Bibliothek verwendet, umeindeutige Werte aus einem Array abzurufenFunktion. Sie gibt alle nicht duplizierten Werte aus dem Eingabe-Array zurück und entfernt Duplikate.

Dies ist eine häufige Operation in der Datenanalyse, wie z. B. das Zählen, wie viele verschiedene Werte in einer Spalte enthalten sind, oder das Abrufen aller Kategorien einer kategorischen Variable.

Wortdefinition: uniqueEs bedeutet "einzigartig, unverwechselbar"; hier bezieht es sich auf das Zurückgeben nicht doppelter Werte aus dem Array.


Grundlegende Syntax und Parameter

pd.unique()ist eine Top-Level-Funktion der Pandas-Bibliothek, die verwendet wird, um eindeutige Werte aus einem Array zu extrahieren.

Syntaxformat

pd.unique(values)

Parameterbeschreibung

  • Parameter: values
    • Typ: array-ähnliches Objekt, wie z. B. eine Liste, Series, ein eindimensionales Array usw.
    • Beschreibung: Die Eingabedaten, aus denen eindeutige Werte extrahiert werden sollen. Es kann eine beliebige eindimensionale Array-Struktur sein.

Funktionsbeschreibung

  • Rückgabewert: Gibt ein ndarray (NumPy-Array) zurück, das alle eindeutigen Werte enthält.
  • Wirkung: Entfernt doppelte Werte aus den Eingabedaten und behält jeden Wert nur einmal.

Beispiele

Lass uns eine Reihe von Beispielen von einfach bis komplex verwenden, um es gründlich zu meisternpd.unique()seine Verwendung gründlich beherrschen.

Beispiel 1: Grundlegende Verwendung – Eindeutige Werte aus einer Series extrahieren

Beispiel

import pandas as pd
import numpy as np

# 1. Erstelle eine Series mit doppelten Werten
colors = pd.Series(['red', 'blue', 'green', 'red', 'blue', 'yellow', 'red'])

print(=== Ursprüngliche Series ===)
print(colors)

# 2. Verwende pd.unique(), um eindeutige Werte zu erhalten
unique_values = pd.unique(colors)
print("\n=== pd.unique() Eindeutige Werte ===")
print(unique_values)
print(f"\nAnzahl eindeutiger Werte: {len(unique_values)}")

Erwartete Ausgabe:

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

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

Code-Erklärung:

  • Die ursprüngliche Series hat 7 Elemente, aber nur 4 eindeutige Werte.
  • pd.unique()Gibt ein NumPy-Array zurück, das alle nicht duplizierten Werte enthält.
  • Das zurückgegebene Ergebnis garantiert keine Reihenfolge (folgt aber normalerweise der Reihenfolge des ersten Auftretens).

Beispiel 2: Eindeutige Werte aus Listen und Arrays extrahieren

pd.unique()Es kann nicht nur Series verarbeiten, sondern auch verschiedene Array-Strukturen.

Beispiel

import pandas as pd
import numpy as np

# 1. Eindeutige Werte aus einer Liste extrahieren
numbers = [1, 2, 3, 2, 1, 4, 5, 3, 2]
print(=== Ursprüngliche Liste ===)
print(numbers)

unique_numbers = pd.unique(numbers)
print("\n=== Eindeutige Werte aus der Liste ===")
print(unique_numbers)
print(f"Typ: {type(unique_numbers)}")

# 2. Eindeutige Werte aus einem NumPy-Array extrahieren
arr = np.array(['a', 'b', 'a', 'c', 'b', 'd'])
print("\n=== NumPy-Array ===")
print(arr)
print("Eindeutige Werte:", pd.unique(arr))

# 3. Aus einer DataFrame-Spalte extrahieren
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Diana'],
    'city': ['Beijing', 'Shanghai', 'Beijing', 'Beijing', 'Guangzhou']
})
print("\n=== DataFrame ===")
print(df)
print("\nEindeutige Werte der Spalte name:, pd.unique(df['name']))
print("Eindeutige Werte der Spalte city:", pd.unique(df['city']))

Erwartete Ausgabe:

=== 原始列表 ===
[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']

Code-Erklärung:

  • pd.unique()Es kann Python-Listen, NumPy-Arrays und DataFrame-Spalten verarbeiten.
  • Das zurückgegebene Ergebnis ist immer ein eindimensionales NumPy-Array.
  • Bei der Arbeit mit einem DataFrame müssen Sie die jeweilige Spalte angeben (unter Verwendung der Klammer-Syntax).

Beispiel 3: Umgang mit numerischen Daten und Sortierung

Wenn Sie mit eindeutigen numerischen Werten arbeiten, können Sie bequem Sortierungen und statistische Analysen durchführen.

Beispiel

import pandas as pd
import numpy as np

# 1. Eine Series mit doppelten numerischen Werten
scores = pd.Series([85, 90, 78, 85, 92, 90, 78, 88, 95])

print(=== Originalwerte ===)
print(scores)

# 2. Eindeutige Werte ermitteln und sortieren
unique_scores = pd.unique(scores)
print("\n=== Eindeutige Werte (unsortiert) ===)
print(unique_scores)

# 3. Sortierte eindeutige Werte
unique_sorted = np.unique(unique_scores)
print("\n=== Eindeutige Werte (sortiert) ===)
print(unique_sorted)

# 4. Vorkommen jedes eindeutigen Werts zählen
print("\n=== Eindeutige Werte und Häufigkeiten ===)
value_counts = pd.Series(scores).value_counts()
print(value_counts)

# 5. Statistische Informationen zu den eindeutigen Werten abrufen
print("\n=== Grundlegende Statistiken ===)
print(f"Anzahl eindeutiger Werte: {len(unique_scores)}")
print(f"Minimalwert: {unique_scores.min()}")
print(f"Maximalwert: {unique_scores.max()}")
print(f"Durchschnittswert: {unique_scores.mean():.2f}")

Erwartete Ausgabe:

>--- 原始分数 ---
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

Code-Erklärung:

  • Sie könnennp.unique()um die Ergebnisse zu sortieren.
  • Kombiniert mitvalue_counts()können Sie die Häufigkeit jedes eindeutigen Wertes sehen.
  • Das Array der eindeutigen Werte kann wie ein normales Array für numerische Berechnungen verwendet werden.

Beispiel 4: Umgang mit fehlenden Werten

pd.unique()Es wird fehlende Werte (NaN) als einen gültigen eindeutigen Wert zurückgeben.

Beispiel

import pandas as pd
import numpy as np

# 1. Daten mit fehlenden Werten
data = pd.Series(['a', 'b', np.nan, 'a', None, 'c', np.nan, 'b'])

print(=== Daten mit fehlenden Werten ===)
print(data)

# 2. Eindeutige Werte ermitteln (NaN wird als eindeutiger Wert behandelt)
unique_with_nan = pd.unique(data)
print("\n=== Eindeutige Werte einschließlich NaN ===)
print(unique_with_nan)
print(f"Anzahl eindeutiger Werte (einschließlich NaN): {len(unique_with_nan)}")

# 3. Eindeutige Werte nach Ausschluss von NaN
unique_no_nan = pd.unique(data[data.notna()])
print("\n=== Eindeutige Werte ohne NaN ===)
print(unique_no_nan)
print(f"Anzahl eindeutiger Werte (ohne NaN): {len(unique_no_nan)}")

# 4. isna() verwenden, um zu prüfen, ob NaN vorhanden ist
has_nan = pd.isna(unique_with_nan).any()
print(f"\nOb NaN vorhanden ist: {has_nan}")

Erwartete Ausgabe:

=== 包含缺失值的数据 ===
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

Code-Erklärung:

  • Sowohl NaN als auch None werden als fehlende Werte behandelt und zählen bei den eindeutigen Werten nur einmal.
  • Sie könnendata[data.notna()]zuerst fehlende Werte herausfiltern, dann eindeutige Werte extrahieren.
  • pd.isna()Sie können prüfen, ob das Array der eindeutigen Werte NaN enthält.

Tipp: pd.unique()Der Rückgabewert ist ein NumPy-Array. Wenn Sie ein pandas-Objekt (wie eine Series) zurückgeben müssen, können SieSeries.unique()Methode verwenden, die eine Series zurückgibt.

Pandas 常用函数Gängige Pandas-Funktionen

Andere Erweiterungen