Python Pandas - 获取列中的唯一值


使用Python Pandas从数据框中的一列提取唯一值的方法有很多,包括**unique()** 和 **nunique()**。Python中的Pandas库主要用于数据分析和操作,以查找数据框列中的唯一值。

一些从列中获取唯一值的方法如下所示

  • unique():此方法将返回Series或DataFrame列的唯一值,作为一个NumPy数组。

  • drop_duplicates():此方法删除DataFrame或Series中的重复值。

  • nunique():此方法返回Series或DataFrame列中唯一值的个数。

使用'unique()'方法

'unique()' 将返回一个包含唯一值的NumPy数组,它在查找单列中的唯一值方面效率很高。

导入库

import pandas as pd;

创建数据框

# Create a DataFrame
data = {
    'Name': ['Robert', 'John', 'Charlie', 'Robert', 'Kumar', 'Naveen'],
    'Age': [26, 30, 35, 26, 40, 30]
}

示例

在下面的代码中,unique()方法将消除重复项并显示每个唯一条目一次。

import pandas as pd

# Create a DataFrame
data = {
    'Name': ['Robert', 'Naveen', 'Charlie', 'Robert', 'Kumar', 'Naveen'],
    'Age': [26, 30, 35, 26, 40, 30]
}

df = pd.DataFrame(data)

# Get unique values from 'Name' column
unique_names = df['Name'].unique()

print("Unique Names:", unique_names)

输出

Unique Names: ['Robert' 'Naveen' 'Charlie' 'Kumar']

使用'drop_duplicates()'方法

此方法将通过删除重复值来返回数据框或序列,drop_duplicates()主要用于从多个列或整个行中删除重复项。

语法

在下面的语法中,keep指的是如果存在任何重复项,则保留first(保留第一次出现)、last(保留最后一次出现)和false(删除所有重复项)。

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

示例

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({
    'Name': ['Robert', 'John', 'Charlie', 'Robert', 'Kumar', 'Naveen'],
    'Age': [26, 30, 35, 26, 40, 30]
})

# Removing duplicates from the 'Name' column, keeping the first occurrence
unique_df = df.drop_duplicates(subset='Name', keep='first')

print(unique_df)

以下是输出:

姓名 年龄
0 Robert 26
1 John 30
2 Charlie 35
4 Kumar 40
5 John 30

使用'nunique()'方法

nunique()方法计算Series或DataFrame列中唯一值的个数,并为Series或DataFrame返回一个整数。它在获取唯一条目的计数方面效率很高。

示例

import pandas as pd

# Create a DataFrame from the dictionary
df = pd.DataFrame({
    'Name': ['Robert', 'John', 'Charlie', 'Robert', 'Kumar', 'Naveen'],
    'Age': [26, 30, 35, 26, 40, 30]
})

# Counting unique values from the 'Name' column
unique_name_count = df['Name'].nunique()

print(f"Num of Unique Names: {unique_name_count}")

# Counting unique values for each column in the DataFrame
unique_counts = df.nunique()

print(unique_counts)

输出

Num of Unique Names: 5
Name    5
Age     4
dtype: int64

更新于:2024年9月23日

13K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告