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
广告