从 Pandas DataFrame 中的列中获取唯一值
unique() 函数删除列上的所有重复值,并为多个相同值返回单个值。在本文中,我们将讨论如何从Pandas DataFrame中的列中获取唯一值。
# 获取任意列的唯一值
df.ColumnName.unique()
Pandas 列中的唯一值
- 创建具有重复元素的 Pandas Dataframe
- 使用 unique() 获取 Pandas 的唯一值
- 使用 nunique 查找列中的唯一值
- 使用 set() 消除列中的重复值
- 使用 Series.drop_duplicates() 获取列中的唯一值
下面是一些示例,通过这些示例我们可以获取数据框中列中的唯一值。
创建具有重复元素的 Pandas Dataframe
创建一个带有列表字典的示例 Pandas 数据框,假设列名称为A、B、C、D 和 E,其中包含重复元素。
Python
# Import pandas package
import pandas as pd
# create a dictionary with five fields each
data = {
'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
'B': ['B1', 'B2', 'B3', 'B4', 'B4'],
'C': ['C1', 'C2', 'C3', 'C3', 'C3'],
'D': ['D1', 'D2', 'D2', 'D2', 'D2'],
'E': ['E1', 'E1', 'E1', 'E1', 'E1']}
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
使用 unique() 获取 Pandas 的唯一值
获取“B”列的唯一值
在此示例中,我们使用方法检索并打印“B”列中的唯一值。结果的唯一值为。unique()['B1', 'B2', 'B3', 'B4']
Python
# Import pandas package
import pandas as pd
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
# Get the unique values of 'B' column
df.B.unique()
输出
array(['B1', 'B2', 'B3', 'B4'], dtype=object)
获取 Pandas 在 E 列中的唯一值
在此示例中,我们从字典中创建一个 pandas DataFrame,然后使用unique()方法从“E”列中检索唯一值。结果的唯一值为['E1']。
Python
# Import pandas package
import pandas as pd
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
# Get the unique values of 'E' column
df.E.unique()
输出
array(['E1'], dtype=object)
使用 nunique 查找列中的唯一值
在此示例中,我们从字典创建一个 pandas DataFrame,然后计算并打印“C”列中唯一值的数量(不包括 NaN 值)。结果为 3,表示“C”列中有三个唯一值。
Python
# Import pandas package
import pandas as pd
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
# Get number of unique values in column 'C'
df.C.nunique(dropna=True)
输出
3
使用 set() 消除列中的重复值
在此示例中,我们从字典中创建一个 pandas DataFrame,然后使用set()函数从“C”列中提取唯一值,消除重复项。结果集{'C1', 'C2', 'C3'}表示“C”列中的唯一值。
Python
# Import pandas package
import pandas as pd
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
# Use set() to eliminate duplicate values in column 'C'
unique_values_set = set(df['C'])
# Print the unique values
print(unique_values_set)
输出
{'C1','C2','C3'}
使用 Series.drop_duplicates() 获取列中的唯一值
在此示例中,我们从字典中创建一个 pandas DataFrame,并使用drop_duplicates()方法从“A”和“D”列中删除重复项。打印时,生成的 DataFrame 将显示“A”和“D”列中的唯一值,其中从“D”中删除重复项的位置显示 NaN 值。
Python
# Import pandas package
import pandas as pd
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
# Use drop_duplicates() to remove duplicates from columns 'A' and 'D'
df['A'] = df['A'].drop_duplicates()
df['D'] = df['D'].drop_duplicates()
# Print the DataFrame after removing duplicates from columns 'A' and 'D'
print(df)
输出
A B C D E 0 A1 B1 C1 D1 E1 1 A2 B2 C2 D2 E1 2 A3 B3 C3 NaN E1 3 A4 B4 C3 NaN E1 4 A5 B4 C3 NaN E1
从 Pandas DataFrame 中的列中获取唯一值 – 常见问题解答
如何从 Pandas DataFrame 中的列中获取唯一值?
要从 Pandas DataFrame 中的列中检索唯一值,请使用该unique()方法。此方法返回唯一值的 NumPy 数组。
例子:
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 2, 3, 4, 4, 5]})
# 从“A”列获取唯一值
unique_values = df['A'].unique()
print(unique_values) # [1 2 3 4 5]
有哪些方法可以获取 Pandas 中的唯一值?
- unique():返回某列中唯一值的数组。
- drop_duplicates():删除重复的行或列,返回DataFrame或Series。
- value_counts():返回包含唯一值计数的系列。
例子:
- 使用:drop_duplicates()
# 从 'A' 列中删除重复值
unique_df = df['A'].drop_duplicates()
print(unique_df) # 0 1, 1 2, 2 3, 3 4, 4 5
- 使用:value_counts()
# 获取唯一值的计数
value_counts = df['A'].value_counts()
print(value_counts) # 2 2, 4 2, 1 1, 3 1, 5 1
如何计算 Pandas DataFrame 中的唯一值?
要计算唯一值,请使用该nunique()方法。它返回列或 DataFrame 中唯一值的数量。
例子:
# 计算“A”列中的唯一值
unique_count = df['A'].nunique()
print(unique_count) # 5
unique()Pandas 中的和有什么区别nunique()?
- unique():返回唯一值的数组。
- nunique():返回唯一值的数量。
例子:
# 使用 unique()
unique_values = df['A'].unique()
print(unique_values) # [1 2 3 4 5]
# 使用 nunique()
unique_count = df['A'].nunique()
print(unique_count) # 5
在 Pandas 中获取唯一数据时如何处理 NaN 值?
NaNunique()值包含在和方法的结果中nunique()。要处理它们:
- 在获取唯一值之前删除 NaN 值:
# 具有 NaN 值的 DataFrame
df_with_nan = pd.DataFrame({'A': [1, 2, 2, None, 4, None]})
# 删除 NaN 值并获取唯一值
unique_values = df_with_nan['A'].dropna().unique()
print(unique_values) # [1. 2. 4.]
- 计算唯一的非 NaN 值:
# 计算除 NaN 之外的唯一值
unique_count = df_with_nan['A'].dropna().nunique()
print(unique_count) # 3