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

【Pandas】pandas DataFrame duplicated

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, …])用于删除重复行的方法
DataFrame.duplicated([subset, keep])用于检测 重复行 的方法

pandas.DataFrame.duplicated()

pandas.DataFrame.duplicated([subset, keep]) 是一个用于检测 重复行 的方法,它返回一个布尔型的 Series,标记每一行是否为重复行(True 表示是重复项)。


📌 方法签名
DataFrame.duplicated(subset=None, keep='first')

🔧 参数说明:
参数类型说明
subset标签或标签列表,可选指定用于判断重复的列,默认为所有列
keep{'first', 'last', False}控制如何标记重复项:
- 'first': 第一次出现的不标记为重复(默认)
- 'last': 最后一次出现的不标记为重复
- False: 所有重复项都标记为 True

✅ 返回值:
  • 返回一个 pandas.Series,类型为布尔值,True 表示该行为重复行。

🧪 示例代码:
示例 1:基于所有列检测重复行
import pandas as pd# 创建含重复行的 DataFrame
df = pd.DataFrame({'A': [1, 2, 2, 3, 2],'B': ['a', 'b', 'b', 'c', 'b']
})print("Original DataFrame:")
print(df)# 检测重复行(默认 keep='first')
duplicates = df.duplicated()print("\nResult of df.duplicated():")
print(duplicates)
输出结果:
Original DataFrame:A  B
0  1  a
1  2  b
2  2  b
3  3  c
4  2  bResult of df.duplicated():
0    False
1    False
2     True
3    False
4     True
dtype: bool

示例 2:基于特定列检测重复行(subset)
# 只根据列 'A' 判断重复
duplicates_by_A = df.duplicated(subset=['A'])print("\nResult of df.duplicated(subset=['A']):")
print(duplicates_by_A)
输出结果:
Result of df.duplicated(subset=['A']):
0    False
1    False
2     True
3    False
4     True
dtype: bool

示例 3:保留最后出现的非重复项(keep=‘last’)
# 最后一次出现的不标记为重复
duplicates_last = df.duplicated(keep='last')print("\nResult of df.duplicated(keep='last'):")
print(duplicates_last)
输出结果:
Result of df.duplicated(keep='last'):
0     True
1     True
2     True
3    False
4    False
dtype: bool

示例 4:标记所有重复项(keep=False)
# 所有重复项都标记为 True
all_duplicates = df.duplicated(keep=False)print("\nResult of df.duplicated(keep=False):")
print(all_duplicates)
输出结果:
Result of df.duplicated(keep=False):
0    False
1     True
2     True
3    False
4     True
dtype: bool

🧠 应用场景:
  • 数据清洗时识别重复记录;
  • 配合 drop_duplicates() 使用,先查看哪些行是重复的;
  • 分析数据集中某些字段组合是否唯一;
  • 在数据分析前确保数据质量。

⚠️ 注意事项:
  • 不会修改原始 DataFrame,而是返回布尔 Series
  • subset 可以是单个列名或多个列组成的列表;
  • keep='first' 是默认行为,适合大多数去重需求;
  • 可用于筛选出重复的数据行进行进一步分析或处理。

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

相关文章:

  • docker运行centos提示Operation not permitted
  • 快速了解 GO之接口解耦
  • 涨薪技术|0到1学会性能测试第89课-性能测试设计
  • R语言基础| 数据基本管理与操作
  • #Js篇:两个前端应用通过postMessage传递file对像
  • 02.K8S核心概念
  • JVM Full GC 频繁问题排查、优化及解决方案
  • ansible template 文件中如果包含{{}} 等非ansible 变量处理
  • git reset --hard HEAD~1与git reset --hard origin/xxx
  • CentOS_7.9 2U物理服务器上部署系统简易操作步骤
  • 人工智能100问☞第36问:什么是BERT?
  • 第5讲、Odoo 18 CLI 模块源码全解读
  • 跨架构镜像打包问题及解决方案
  • 棋盘问题(放置棋子)
  • ranges属性验证
  • 逻辑回归详解:从原理到实践
  • notion搭建个人知识管理库
  • 利用Python制作环保志愿者招募海报
  • 设计师如何搭建自己的素材库?
  • useRef、useForwardRef 和 useImperativeHandle
  • SpringSecurity
  • 深入了解 C# 异步编程库 AsyncEx
  • Minimax-speech-hd
  • Qt DateTimeEdit(时间⽇期的微调框)
  • 【QQ音乐】sign签名| data参数加密 | AES-GCM加密 | webpack实战 (下)
  • ElasticSearch简介及常用操作指南
  • TypeScript中?和!号用法
  • Asp.Net Core 托管服务
  • Cannot find any provider supporting AES/ECB/PKCS7Padding
  • 智能外呼系统中 NLP 意图理解的工作原理与技术实现