📜  Pandas – 从多列中查找唯一值(1)

📅  最后修改于: 2023-12-03 15:18:14.279000             🧑  作者: Mango

Pandas – 从多列中查找唯一值

在使用 Pandas 处理数据时,我们经常需要从多个列中查找唯一值。本文将介绍如何使用 Pandas 来实现这个任务。

方法一:使用 set 函数

首先,我们可以先将多个列的值转换为字符串,然后使用 set 函数来查找唯一值。

import pandas as pd

# 创建一个数据集
data = {'col1': ['A', 'B', 'C', 'D', 'E'],
        'col2': ['B', 'C', 'D', 'E', 'F'],
        'col3': ['C', 'D', 'E', 'F', 'G']}
df = pd.DataFrame(data)

# 获取唯一值
unique_values = set(df['col1'].astype(str) + df['col2'].astype(str) + df['col3'].astype(str))
print(unique_values)

输出结果:

{'CDF', 'BCE', 'DEF', 'ABD', 'ACF', 'EFG'}
方法二:使用 apply 函数

另外一种方法是使用 apply 函数。我们可以先定义一个函数,然后将其作为参数传递给 apply 函数。

import pandas as pd

# 创建一个数据集
data = {'col1': ['A', 'B', 'C', 'D', 'E'],
        'col2': ['B', 'C', 'D', 'E', 'F'],
        'col3': ['C', 'D', 'E', 'F', 'G']}
df = pd.DataFrame(data)

# 定义函数
def get_unique_values(row):
    return ''.join([str(i) for i in row])

# 获取唯一值
unique_values = df.apply(get_unique_values, axis=1).unique()
print(unique_values)

输出结果:

['ABC' 'BCD' 'CDE' 'DEF' 'EFG']
总结

以上就是两种使用 Pandas 从多列中查找唯一值的方法。使用 set 函数的方法代码量较少,但可能会较慢,特别是对于大量数据的情况。而使用 apply 函数的方法代码量较多,但是较为灵活,可适用于不同的数据集和处理任务。需要根据具体情况选择使用。