Python Pandas - 計數與檢索唯一元素



在處理即時資料時,我們經常會遇到重複條目,這些條目是在資料集中多次出現的資料行或實體。重複資料可能由多種原因引起,例如資料收集錯誤、重複記錄或資料集合並。從重複資料中計數和識別唯一元素是資料預處理和資料分析中的一項重要任務。

在本教程中,我們將學習如何使用 Pandas 計數和檢索重複資料中的唯一元素。Pandas 提供了兩個主要函式,**nunique()** 和 **unique()**,分別用於計數和檢索唯一元素。

計數唯一元素

Pandas 的 **DataFrame.nunique()** 方法用於沿 DataFrame 的特定軸計算不同元素的數量。它可以按行或按列應用,也可以選擇忽略 NaN 值。

語法

以下是語法:

DataFrame.nunique(axis=0, dropna=True)

其中:

  • **axis**: 定義是按行 (axis=1) 還是按列 (axis=0,預設) 計數唯一元素。

  • **dropna**: 設定為 True (預設) 時,它會忽略計數中的 NaN 值。

示例:按列計數唯一元素

這是一個基本的示例,演示了 **DataFrame.nunique()** 方法用於計算 Pandas DataFrame 的列唯一值。

import pandas as pd

# Creating a DataFrame
df = pd.DataFrame({'A': [4, 5, 6],'B': [4, 1, 1]})

# Display the Original DataFrame
print("Original DataFrame:")
print(df)

# Counting unique values column-wise
result = df.nunique()
print('Column wise count of the unique elements:\n', result)

以上程式碼的輸出如下:

Original DataFrame:
AB
044
151
261
Column wise count of the unique elements: A 3 B 2 dtype: int64

這裡,A 列有 3 個唯一值,而 B 列有 2 個唯一值。

示例:按行計數唯一值

此示例演示了 **DataFrame.nunique()** 方法用於計算 Pandas DataFrame 的行唯一值。透過將 axis 引數設定為 1,也可以按行計數唯一值。

import pandas as pd

# Creating a DataFrame
df = pd.DataFrame({'A': [4, 5, 6],'B': [4, 1, 1]})

# Display the Original DataFrame
print("Original DataFrame:")
print(df)

# Counting unique values row-wise
result = df.nunique(axis=1)
print('\nRow wise count of the unique elements:\n', result)

以上程式碼的輸出如下:

Original DataFrame:
AB
044
151
261
Row wise count of the unique elements: 0 1 1 2 2 2 dtype: int64

使用 value_counts() 計數唯一值

pandas 的 **DataFrame.value_counts()** 方法用於獲取有關唯一值的更詳細資訊。它返回一個 Series,其中包含按降序排列的唯一值的計數。

示例

此示例使用 **DataFrame.value_counts()** 方法計算 DataFrame 列中的唯一值。

import pandas as pd

# Creating a DataFrame
df = pd.DataFrame({'A': [4, 5, 6],'B': [4, 1, 1]})

# Display the Original DataFrame
print("Original DataFrame:")
print(df)

# Count the frequency of unique values in column 'B'
result = df['B'].value_counts()

print('\nThe unique values:')
print(result)

以上程式碼的輸出如下:

Original DataFrame:
AB
044
151
261
The unique values: B 1 2 4 1 Name: count, dtype: int64

檢索唯一元素

**pandas.unique()** 函式用於從 DataFrame 的單個列或 Series 中獲取唯一值的陣列。與計算唯一值的 **nunique()** 不同,**unique()** 直接返回這些唯一值。

語法

以下是語法:

pandas.unique(values)

其中,**values** 是一個可以是一維陣列狀結構(例如 Series 或 DataFrame 列)的單個引數。

示例

以下示例使用 **pandas.unique()** 函式從 Pandas DataFrame 列中獲取所有唯一元素。

import pandas as pd

# Creating a DataFrame
df = pd.DataFrame({'A': [4, 5, 6],'B': [4, 1, 1]})

# Display the Original DataFrame
print("Original DataFrame:")
print(df)

# Get unique values from a column
result= pd.unique(df['A'])
print('\nThe unique values:\n', result)

以上程式碼的輸出如下:

Original DataFrame:
AB
044
151
261
The unique values: [4 5 6]
廣告