当前位置: 首页 > ai >正文

【Pandas】pandas DataFrame drop_duplicates

Pandas2.2 DataFrame

Reindexing selection label manipulation

方法描述
DataFrame.add_prefix(prefix[, axis])用于在 DataFrame 的行标签或列标签前添加指定前缀的方法
DataFrame.add_suffix(suffix[, axis])用于在 DataFrame 的行标签或列标签后添加指定后缀的方法
DataFrame.align(other[, join, axis, level, …])用于对齐两个 DataFrameSeries 的方法
DataFrame.at_time(time[, asof, axis])用于筛选 特定时间点 的行的方法
DataFrame.between_time(start_time, end_time)用于筛选 指定时间范围内的数据行 的方法
DataFrame.drop([labels, axis, index, …])用于从 DataFrame 中删除指定行或列的方法
DataFrame.drop_duplicates([subset, keep, …])用于删除重复行的方法

pandas.DataFrame.drop_duplicates()

pandas.DataFrame.drop_duplicates() 是一个用于删除重复行的方法,常用于数据清洗中去除重复的数据记录。你可以根据全部列或指定列来判断是否为重复行,并控制保留哪一行。


📌 方法签名
DataFrame.drop_duplicates(subset=None, *, keep='first', inplace=False, ignore_index=False)

🔧 参数说明:
参数类型说明
subset标签或标签列表,可选指定用于判断重复的列,默认为所有列
keep{'first', 'last', False}控制保留哪一条重复记录:
- 'first': 保留第一次出现的(默认)
- 'last': 保留最后一次出现的
- False: 删除所有重复项
inplacebool,默认 False是否在原对象上修改
ignore_indexbool,默认 False如果为 True,结果将重置索引(从 0 开始)

✅ 返回值:
  • 返回一个新的 DataFrame,不包含重复行(除非 inplace=True)。

🧪 示例代码:
示例 1:基于所有列去重
import pandas as pd# 创建含重复行的 DataFrame
df = pd.DataFrame({'A': [1, 2, 2, 3],'B': ['a', 'b', 'b', 'c']
})print("Original DataFrame:")
print(df)# 去除完全重复的行
df_unique = df.drop_duplicates()print("\nAfter drop_duplicates():")
print(df_unique)
输出结果:
Original DataFrame:A  B
0  1  a
1  2  b
2  2  b
3  3  cAfter drop_duplicates():A  B
0  1  a
1  2  b
3  3  c

示例 2:基于特定列去重(subset)
# 只根据列 'A' 判断重复
df_unique_by_A = df.drop_duplicates(subset=['A'])print("\nAfter drop_duplicates(subset=['A']):")
print(df_unique_by_A)
输出结果:
After drop_duplicates(subset=['A']):A  B
0  1  a
1  2  b
3  3  c

示例 3:保留最后出现的重复项
# 保留最后一次出现的重复项
df_last = df.drop_duplicates(keep='last')print("\nAfter drop_duplicates(keep='last'):")
print(df_last)
输出结果:
After drop_duplicates(keep='last'):A  B
0  1  a
3  3  c
2  2  b

示例 4:删除所有重复项
# 不保留任何重复项
df_no_dupes = df.drop_duplicates(keep=False)print("\nAfter drop_duplicates(keep=False):")
print(df_no_dupes)
输出结果:
After drop_duplicates(keep=False):A  B
0  1  a
3  3  c

示例 5:忽略原始索引
# 重置索引
df_reset_index = df.drop_duplicates(ignore_index=True)print("\nAfter drop_duplicates(ignore_index=True):")
print(df_reset_index)
输出结果:
After drop_duplicates(ignore_index=True):A  B
0  1  a
1  2  b
2  3  c

🧠 应用场景:
  • 数据清洗中去除重复记录;
  • 确保唯一性约束(如用户ID、订单号等);
  • 预处理阶段避免模型训练时受到重复样本干扰;

⚠️ 注意事项:
  • 默认不会修改原始 DataFrame,除非设置 inplace=True
  • subset 可以是单个列名或多个列组成的列表;
  • keep=False 会删除所有重复项,包括原始的那一行;
  • ignore_index=True 可用于输出更整洁的索引。

http://www.xdnf.cn/news/9049.html

相关文章:

  • 【springMVC】springMVC学习系列一:springMVC的组件
  • 调度算法中的轮盘赌与锦标赛选择算子:优势对比与选择策略
  • 创建一个简易的风扇动画界面:基于 WPF 和 XAML 的实现教程
  • 第Y1周打卡——调用官方权重进行检测
  • 每日算法 -【Swift 算法】字符串转整数算法题详解:myAtoi 实现与正则表达式对比
  • 直线参数方程何时必须化为标准形式 |新高考已删
  • golang channel 的特点、原理及使用场景
  • 人工智能 - Magentic-UI与Browser Use 技术选型
  • C++基础算法————递推
  • Neural Blind Deconvolution Using Deep Priors论文阅读
  • 【Dify系列教程重置精品版】第十章:Dify与RAG
  • Guard Trace 值得吗?
  • 3.python操作mysql数据库
  • 切换目录大全
  • Voice Conversion语音转换
  • PHP:赋能Web开发的经典语言与未来演进
  • XSS跨站脚本攻击的原理、危害与防御
  • 基于PDF流式渲染的Word文档在线预览技术
  • 用MMdetection框架训练自己的数据集(全流程实战)
  • GitAny - 無需登入的 GitHub 最新倉庫檢索工具
  • AbMole| Erastin(571203-78-6,M2679,铁死亡诱导剂)
  • 基于MATLAB的大规模MIMO信道仿真
  • 系统架构中的限流算法(一)
  • 两个Ubuntu机器,设置共享目录实时同步
  • React的单向数据绑定
  • 力扣热题-有向图中最大颜色值
  • 二十八、面向对象底层逻辑-SpringMVC九大组件之ViewResolver接口设计
  • ASCII码对应表
  • call的作用是什么,为什么要使用它?
  • AI工具使用的最佳实践,如何通过AI工具提高创作与工作效率