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]
广告
© . All rights reserved.