在数据处理中,去除重复数据是确保数据质量和分析准确性的关键步骤。特别是在处理多列数据时,保留唯一值组合能够有效清理数据集,避免冗余信息对分析结果的干扰。不同的工具和编程语言提供了多种方法来实现多列去重,例如 Python 的 Pandas 库、Excel 的内置功能、SQL 的查询语法,以及 NumPy 和 R 等其他技术栈中的相关函数。本文将基于 unique 或相关去重方法,详细介绍在多种常用工具和语言中如何高效地对多列数据进行去重操作,并提供示例代码和注意事项,以帮助用户根据实际需求选择合适的解决方案。
1. Python(Pandas)中多列去重
在 Python 的 Pandas 库中,drop_duplicates() 是多列去重的首选方法,unique() 通常用于单列(Series)。
示例代码
import pandas as pd
# 示例数据
data = {
'A': [1, 2, 1, 3, 2],
'B': ['x', 'y', 'x', 'z', 'y'],
'C': [10, 20, 10, 30, 20]
}
df = pd.DataFrame(data)
# 对多列(A 和 B)去重
result = df[['A', 'B']].drop_duplicates()
print(result)
说明
- drop_duplicates() 默认保留第一次出现的记录。
- 参数 keep='last' 可保留最后一次出现的记录,keep=False 删除所有重复记录。
- 指定列名(如 df[['A', 'B']].drop_duplicates())仅对指定列去重。
2. Excel 中多列去重
Excel 中可通过“删除重复项”功能或 UNIQUE 函数(Office 365/Excel 2021)实现多列去重。
方法 1:删除重复项
- 选中数据区域。
- 在“数据”选项卡中,点击“删除重复项”。
- 选择需要去重的列(例如 A 和 B 列)。
- 点击“确定”,保留唯一值组合。
方法 2:UNIQUE 函数
=UNIQUE(A1:B10)
- 返回 A 和 B 列的唯一组合。
- 需动态数组支持(Office 365 或 Excel 2021,2024)。
3. SQL 中多列去重
在 SQL 中,使用 DISTINCT 关键字实现多列去重。
示例查询
SELECT DISTINCT column1, column2
FROM table_name;
说明
- DISTINCT 基于指定列返回唯一组合。
- 可省略列名以对整个表去重,但建议明确指定列。
4. 其他语言
NumPy
import numpy as np
array = np.array([[1, 'x'], [2, 'y'], [1, 'x'], [3, 'z']])
unique_rows = np.unique(array, axis=0)
print(unique_rows)
R
library(dplyr)
df <- data.frame(A = c(1, 2, 1, 3), B = c("x", "y", "x", "z"))
result <- distinct(df, A, B)
print(result)
<script type="text/javascript" src="//mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=7523865256318304794"></script>