- Python Pandas 教程
- Python Pandas - 首页
- Python Pandas - 简介
- Python Pandas - 环境设置
- Python Pandas - 基础
- Python Pandas - 数据结构介绍
- Python Pandas - 索引对象
- Python Pandas - 面板
- Python Pandas - 基本功能
- Python Pandas - 索引和数据选择
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - 切片 Series 对象
- Python Pandas - Series 对象的属性
- Python Pandas - Series 对象上的算术运算
- Python Pandas - 将 Series 转换为其他对象
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 访问 DataFrame
- Python Pandas - 切片 DataFrame 对象
- Python Pandas - 修改 DataFrame
- Python Pandas - 从 DataFrame 中删除行
- Python Pandas - DataFrame 上的算术运算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 读取和写入 JSON 文件
- Python Pandas - 从 Excel 文件读取数据
- Python Pandas - 将数据写入 Excel 文件
- Python Pandas - 使用 HTML 数据
- Python Pandas - 剪贴板
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 与 SQL 的比较
- Python Pandas - 数据处理
- Python Pandas - 排序
- Python Pandas - 重索引
- Python Pandas - 迭代
- Python Pandas - 连接
- Python Pandas - 统计函数
- Python Pandas - 描述性统计
- Python Pandas - 处理文本数据
- Python Pandas - 函数应用
- Python Pandas - 选项和自定义
- Python Pandas - 窗口函数
- Python Pandas - 聚合
- Python Pandas - 合并/连接
- Python Pandas - 多级索引
- Python Pandas - 多级索引基础
- Python Pandas - 使用多级索引进行索引
- Python Pandas - 使用多级索引的高级重索引
- Python Pandas - 重命名多级索引标签
- Python Pandas - 对多级索引进行排序
- Python Pandas - 二元运算
- Python Pandas - 二元比较运算
- Python Pandas - 布尔索引
- Python Pandas - 布尔掩码
- Python Pandas - 数据重塑和透视表
- Python Pandas - 透视表
- Python Pandas - 堆叠和取消堆叠
- Python Pandas - 熔化
- Python Pandas - 计算虚拟变量
- Python Pandas - 类别数据
- Python Pandas - 类别数据
- Python Pandas - 类别数据的排序和排序
- Python Pandas - 比较类别数据
- Python Pandas - 处理缺失数据
- Python Pandas - 缺失数据
- Python Pandas - 填充缺失数据
- Python Pandas - 缺失值的插值
- Python Pandas - 删除缺失数据
- Python Pandas - 使用缺失数据进行计算
- Python Pandas - 处理重复项
- Python Pandas - 重复数据
- Python Pandas - 计数和检索唯一元素
- Python Pandas - 重复标签
- Python Pandas - 分组和聚合
- Python Pandas - GroupBy
- Python Pandas - 时间序列数据
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 稀疏数据结构
- Python Pandas - 稀疏数据
- Python Pandas - 可视化
- Python Pandas - 可视化
- Python Pandas - 其他概念
- Python Pandas - 注意事项和陷阱
- Python Pandas 有用资源
- Python Pandas - 快速指南
- Python Pandas - 有用资源
- Python Pandas - 讨论
Python Pandas - 重复数据
重复数据是指数据集中出现多次的行。重复数据可能由于各种原因而发生,例如数据收集错误、重复记录或合并数据集。识别和删除重复项是数据预处理和数据分析中的一项基本任务,以避免出现错误的结果。
考虑此包含学生姓名和出生日期的示例数据集 -
学生 | 出生日期 |
---|---|
Rahul | 2017年12月1日 |
Raj | 2018年4月14日 |
Rahul | 2017年12月1日 |
在此数据集中,第一行和最后一行包含重复值,表明“Rahul”是重复条目。
Python Pandas 库提供了两种主要方法duplicated() 和 drop_duplicates() 用于有效地管理重复数据。这些方法用于识别和清理包含重复项的数据集。
在本教程中,我们将学习如何识别重复项、检查特定列中的重复项以及使用 Pandas 删除它们。
识别 DataFrame 中的重复项
Pandas DataFrame.duplicated() 方法用于识别 DataFrame 中的重复行。默认情况下,它考虑所有列来识别重复项并将它们标记为 True,除了第一次出现。
此方法返回一个布尔 Series,指示一行是否重复,其中 -
False:该行不是重复项(即,它是第一次出现)。
True:该行是 DataFrame 中另一行的重复项。
示例
以下是使用duplicated() 方法识别 Pandas DataFrame 重复项的基本示例。
import pandas as pd # Sample dataset df = pd.DataFrame({ 'Name': ['Rahul', 'Raj', 'Rahul'], 'Date_of_Birth': ['01 December 2017', '14 April 2018', '01 December 2017']}) print("Original DataFrame:") print(df) # Find duplicates in the DataFrame result = df.duplicated() # Display the resultant Duplicates print('\nResult after finding the duplicates:') print(result)
以下是上述代码的输出 -
Original DataFrame:
Name | Date_of_Birth |
---|---|
Rahul | 01 December 2017 |
Raj | 14 April 2018 |
Rahul | 01 December 2017 |
在此示例中,第三行被标记为重复项,因为它与第一行具有相同的值。
识别特定列上的重复项
要根据特定列查找重复项,请使用duplicated() 方法的subset 参数。
示例
以下示例演示了如何使用duplicated() 方法的subset 参数在特定列上识别重复值。
import pandas as pd # Sample dataset df = pd.DataFrame({ 'Name': ['Rahul', 'Raj', 'Rahul', 'Karthik', 'Arya', 'Karthik'], 'Date_of_Birth': ['01 December 2017', '14 April 2018', '01 December 2017', '14 July 2000', '26 May 2000', '14 July 2000'], 'City': ['Hyderabad', 'Chennai', 'Kolkata', 'Hyderabad', 'Chennai', 'Hyderabad']}) print("Original DataFrame:") print(df) # Find duplicates in the DataFrame result = df.duplicated(subset=['Name', 'City']) # Display the resultant Duplicates print('\nResult after finding the duplicates:') print(result)
以下是上述代码的输出 -
Original DataFrame:
Name | Date_of_Birth | City | |
---|---|---|---|
0 | Rahul | 01 December 2017 | Hyderabad |
1 | Raj | 14 April 2018 | Chennai |
2 | Rahul | 01 December 2017 | Kolkata |
3 | Karthik | 14 July 2000 | Hyderabad |
4 | Arya | 26 May 2000 | Chennai |
5 | Karthik | 14 July 2000 | Hyderabad |
删除重复项
drop_duplicates() 方法用于从 DataFrame 中删除重复行。默认情况下,它考虑所有列并保留每个重复行的第一次出现,同时删除其余部分。
示例
此示例使用drop_duplicates() 方法从 Pandas DataFrame 中删除重复行。
import pandas as pd # Sample dataset df = pd.DataFrame({ 'Name': ['Rahul', 'Raj', 'Rahul', 'Karthik', 'Arya', 'Karthik'], 'Date_of_Birth': ['01 December 2017', '14 April 2018', '01 December 2017', '14 July 2000', '26 May 2000', '14 July 2000'], 'City': ['Hyderabad', 'Chennai', 'Kolkata', 'Hyderabad', 'Chennai', 'Hyderabad']}) print("Original DataFrame:") print(df) # Drop duplicates in the DataFrame result = df.drop_duplicates() # Display the resultant Duplicates print('\nResult after finding the duplicates:') print(result)
以下是上述代码的输出 -
Original DataFrame:
Name | Date_of_Birth | City | |
---|---|---|---|
0 | Rahul | 01 December 2017 | Hyderabad |
1 | Raj | 14 April 2018 | Chennai |
2 | Rahul | 01 December 2017 | Kolkata |
3 | Karthik | 14 July 2000 | Hyderabad |
4 | Arya | 26 May 2000 | Chennai |
5 | Karthik | 14 July 2000 | Hyderabad |
Name | Date_of_Birth | City | |
---|---|---|---|
0 | Rahul | 01 December 2017 | Hyderabad |
1 | Raj | 14 April 2018 | Chennai |
2 | Rahul | 01 December 2017 | Kolkata |
3 | Karthik | 14 July 2000 | Hyderabad |
4 | Arya | 26 May 2000 | Chennai |
删除特定列中的重复项
您还可以使用drop_duplicates() 方法的subset 参数根据特定列删除重复项。
示例
此示例使用drop_duplicates() 方法的subset 参数根据特定列删除 DataFrame 的重复数据。
import pandas as pd # Sample dataset df = pd.DataFrame({ 'Name': ['Rahul', 'Raj', 'Rahul', 'Karthik', 'Arya', 'Karthik'], 'Date_of_Birth': ['01 December 2017', '14 April 2018', '01 December 2017', '14 July 2000', '26 May 2000', '14 July 2000'], 'City': ['Hyderabad', 'Chennai', 'Kolkata', 'Hyderabad', 'Chennai', 'Hyderabad']}) print("Original DataFrame:") print(df) # Drop duplicates in the DataFrame result = df.drop_duplicates(subset=['Date_of_Birth']) # Display the resultant Duplicates print('\nResult after finding the duplicates:') print(result)
以下是上述代码的输出 -
Original DataFrame:
Name | Date_of_Birth | City | |
---|---|---|---|
0 | Rahul | 01 December 2017 | Hyderabad |
1 | Raj | 14 April 2018 | Chennai |
2 | Rahul | 01 December 2017 | Kolkata |
3 | Karthik | 14 July 2000 | Hyderabad |
4 | Arya | 26 May 2000 | Chennai |
5 | Karthik | 14 July 2000 | Hyderabad |
Name | Date_of_Birth | City | |
---|---|---|---|
0 | Rahul | 01 December 2017 | Hyderabad |
1 | Raj | 14 April 2018 | Chennai |
3 | Karthik | 14 July 2000 | Hyderabad |
4 | Arya | 26 May 2000 | Chennai |