一文速学-Pandas处理重复值操作各类方法详解+代码展示

简介: 一文速学-Pandas处理重复值操作各类方法详解+代码展示

前言


使用Pandas进行数据预处理时需要了解Pandas的基础数据结构Series和DataFrame。若是还不清楚的可以再去看看我之前的三篇博客详细介绍这两种数据结构的处理方法:


一文速学-数据分析之Pandas数据结构和基本操作代码


DataFrame行列表查询操作详解+代码实战


DataFrame多表合并拼接函数concat、merge参数详解+代码操作展示


以上三篇很容易学会,没有比较难的实战。


本文承接上一篇:一文速学-Pandas处理缺失值操作各类方法详解


此篇博客基于Jupyter之上进行演示,本篇博客的愿景是希望我或者读者通过阅读这篇博客能够学会方法并能实际运用,而且能够记录到你的思想之中。当然个人不是数学专业对一些专业性的知识可能不是很了解,希望读者看完能够提出错误或者看法,博主会长期维护博客做及时更新。纯分享,希望大家喜欢。


提示:以下是本篇文章正文内容,下面案例可供参考


此博客用到的数据集为:


Series:


se = pd.Series({'a':1,'c':1,'d':3,'e':3})


e222704a131141b6a77deaa81655202a.png

 DataFrame:

data = {'name': ['user1', 'user2', 'user2', 'user3', 'user4'],
        'old': [21, 18, 21, 19, 26],
        'weight': [124, 124, 102,103,121],
       'sex':['女','男','男','男','男'] }
columns1=['name', 'old', 'weight','sex']
index1=['id1', 'id2', 'id3','id4','id5']
df2= pd.DataFrame(data,columns=columns1,index=index1)


40a800e9b88b4cf6b3eae159be05519e.png



对于Pandas的数据集重复值的操作,有两个非常方便的函数:

duplicated() :检测是否有重复值

drop_duplicates() :删除重复值


一、duplicated()


对Series数据结构

pandas.Series.duplicated(keep='first')

对DataFrame数据结构:


pandas.DataFrame.duplicated(subset=None,keep='first')


参数说明:


subset:列标签或标签序列

keep:对于选定重复值指定操作类型,有三种可选范围

first:将重复项标记True为第一次出现的除外

last:将重复项标记True为最后一次除外

False:将所有重复项标记为True

该函数和isnull的功能一样,也是替换原来的数据集把第一次出现的数据标记为False,不熟第一次的为True:  

se.duplicated()


5d8156e612334df9a5ecd79388af16c1.png

df2.duplicated(subset=['old'])

9c7e302710fe4d3196e37d9c8f46d4b3.png


将重复项标记True为最后一次除外:


df2.duplicated(subset=['old'],keep='last')


53317b8a6f054ac9b6e623961c24984c.png

将所有重复项标记为True,这里不需要引号:


df2.duplicated(subset=['old'],keep=False)

647ff1c9d2c9460f8e72b82d0ae32b02.png


二、drop_duplicates()


使用该函数可以删去数据集中的重复值。

语法:


drop_duplicated(subset=None,keep=“first”,inplace=False)


官方释义:



e2e009db209148eabeb9c43612e948bc.png


参数说明:


subset:用于指定一列或者多列进行删除重复值操作。

keep:删除重复值后保留的数据,默认保留第一条数据。

inplace:该函数在其他函数表示意思都一样,是否将删除后的数据替换原数据集。

ingoore_index:和merge函数一样的意思,生成数据的索引是元数据的,还是从0,1,2…到n-1的自然数排列


se.drop_duplicates()


029a7bdda50340cba0f1425e6228c607.png

这里稍微改一下df2的格式为df1:

79d1296449814c77855ac5661df79ad5.png

df1.drop_duplicates()

e188c0d26ad843498edd1d407652070c.png


subset指定列来判断:


df1.drop_duplicates(subset=['old'])


627bc86ac7ed454e9bf41dcd304f364c.png


通过设定keep来保留最后一个last:


df1.drop_duplicates(subset=['old'],keep='last')


0f33d5dfb9164017be45f4b0d282931d.png

若修改ignore_index则会把原index替换从0开始的序列:


26c2e0d22a0a430cabe99162989adb2f.png


这样id就被替换了

目录
相关文章
|
3月前
|
SQL 索引 Python
Pandas中DataFrame合并的几种方法
Pandas中DataFrame合并的几种方法
226 0
|
1月前
|
Python
通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法
在金融分析领域,"死叉"指的是短期移动平均线(如MA5)下穿长期移动平均线(如MA10),而"金叉"则相反。本文介绍了一种利用Python编程语言,通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法。该方法首先计算两种移动平均线,接着确定它们的交叉点,最后检查并输出最近一次死叉及其后是否形成了金叉。此技术广泛应用于股市趋势分析。
48 2
|
2月前
|
存储 数据采集 数据处理
Pandas中批量转换object至float的高效方法
在数据分析中,常需将Pandas DataFrame中的object类型列转换为float类型以进行数值计算。本文介绍如何使用`pd.to_numeric`函数高效转换,并处理非数字值,包括用0或平均值填充NaN值的方法。
84 1
|
3月前
|
数据处理 Python
Pandas中的drop_duplicates()方法详解
Pandas中的drop_duplicates()方法详解
236 2
|
3月前
|
数据处理 Python
Pandas快速统计重复值的2种方法
Pandas快速统计重复值的2种方法
165 1
|
3月前
|
数据挖掘 Python
掌握Pandas中的相关性分析:corr()方法详解
掌握Pandas中的相关性分析:corr()方法详解
259 0
|
3月前
|
数据处理 索引 Python
Pandas中resample方法:轻松处理时间序列数据
Pandas中resample方法:轻松处理时间序列数据
82 0
|
3月前
|
SQL 数据采集 索引
聚焦Pandas数据合并:掌握merge方法
聚焦Pandas数据合并:掌握merge方法
43 0
|
3月前
|
数据采集 机器学习/深度学习 数据挖掘
Pandas中的变形大师:transform方法
Pandas中的变形大师:transform方法
35 0

热门文章

最新文章