pandas(提取)去除重复项
方法
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)
参数
subset : column label or sequence of labels, optional 用来指定特定的列,默认所有列 keep : {‘first’, ‘last’, False}, default ‘first’ 删除重复项并保留第一次出现的项 inplace : boolean, default False 是直接在原来数据上修改还是保留一个副本
实战
第一种情况,去掉重复的数据:
### 构造数据 data = pd.DataFrame(data=[['a',1],['a',2],['b',1],['b',2],['a',1]],columns=['label','num']) data Out[17]: label num 0 a 1 1 a 2 2 b 1 3 b 2 4 a 1
Dataframe已经有相关的函数来处理这个问题,就是drop_duplicates()函数。我们看到下面已经把重复的(’a',1)已经删除了。具体的参数大家可以点击链接,参考官方文档。总共只有三个参数。
data.drop_duplicates() Out[18]: label num 0 a 1 1 a 2 2 b 1 3 b 2
我们也可以利用subset参数指定去除某一列的重复值。
data.drop_duplicates(subset='label') Out[20]: label num 0 a 1 2 b 1
第二种情况,从数据中提取重复的数据:
DataFrame也提供了相关的函数来处理这个问题,就是duplicated()函数。我们可以看到duplicated函数返回的是布尔类型,重复出现就返回True。该函数只有两个参数,大家可以参考官方文档。
data.duplicated() Out[40]: 0 False 1 False 2 False 3 False 4 True dtype: bool
因为keep参数默认为First,就是除了第一次出现的数据,其他重复的数据都标记为True;如果我们想要获取所有重复的数据,可以将keep的值赋值为False。如下所示,就可以提取出所有重复的数据。
data.duplicated(keep=False) Out[41]: 0 True 1 False 2 False 3 False 4 True dtype: bool
因为duplicated函数返回的是布尔类型,所以要想得到具体的数据可以做如下操作:
data[data.duplicated(keep=False)] Out[42]: label num 0 a 1 4 a 1
参考文章:
https://blog.csdn.net/zx1245773445/article/details/99973622?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.pc_relevant_is_cache&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.pc_relevant_is_cache
https://blog.csdn.net/u010665216/article/details/78559091
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人