首页 > 其他分享 >软件测试|数据处理神器pandas教程(十一)

软件测试|数据处理神器pandas教程(十一)

时间:2023-06-21 15:33:17浏览次数:42  
标签:12 df drop 神器 重复 pd data pandas 软件测试

在这里插入图片描述

前言

“去重”通过字面意思不难理解,就是删除重复的数据。在一个数据集中,找出重复的数据删并将其删除,最终只保存一个唯一存在的数据项,这就是数据去重的整个过程。删除重复数据是数据分析中经常会遇到的一个问题。通过数据去重,不仅可以节省内存空间,提高写入性能,还可以提升数据集的精确度,使得数据集不受重复数据的影响。

Panda DataFrame 对象提供了一个数据去重的函数 drop_duplicates(),本节对该函数的用法做详细介绍。

获取更多技术资料,请点击!

函数格式

drop_duplicates()函数的语法格式如下:

df.drop_duplicates(subset=['A','B','C'],keep='first',inplace=True)

参数说明如下:

  • subset:表示要进去重的列名,默认为 None。
  • keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只保留第一次出现的重复项,删除其余重复项,last 表示只保留最后一次出现的重复项,False 则表示删除所有重复项。
  • inplace:布尔值参数,默认为 False 表示删除重复项后返回一个副本,若为 Ture 则表示直接在原数据上删除重复项。

方法应用

首先创建一个包含有重复值的 DataFrame 对象,如下所示:

import pandas as pd
data={
   
    'A':[1,0,1,1],
    'B':[0,2,5,0],
    'C':[4,0,4,4],
    'D':[1,0,1,1]
}
df=pd.DataFrame(data=data)
print(df)
----------------
输出结果如下:
  A B C D
0 1 0 4 1
1 0 2 0 0
2 1 5 4 1
3 1 0 4 1
  1. 默认保留第一次出现的重复项
import pandas as pd
data={
  
    'A':[1,0,1,1],
    'B':[0,2,5,0],
    'C':[4,0,4,4],
    'D':[1,0,1,1]
}
df=pd.DataFrame(data=data)
#默认保留第一次出现的重复项
df.drop_duplicates()
--------------------
输出结果如下:
  A B C D
0 1 0 4 1
1 0 2 0 0
2 1 5 4 1
  1. keep=False删除所有重复项
import pandas as pd
data={
    'A':[1,0,1,1],
    'B':[0,2,5,0],
    'C':[4,0,4,4],
    'D':[1,0,1,1]
}
df=pd.DataFrame(data=data)
#默认保留第一次出现的重复项
df.drop_duplicates(keep=False)
--------------------------
输出结果如下:
  A B C D
1 0 2 0 0
2 1 5 4 1
  1. 根据指定列标签去重
import pandas as pd
data={
   
    'A':[1,3,3,3],
    'B':[0,1,2,0],
    'C':[4,5,4,4],
    'D':[3,3,3,3]
}
df=pd.DataFrame(data=data)
#去除所有重复项,对于B列来说两个0是重复项
df1 = df.drop_duplicates(subset=['B'],keep=False)
#简写,省去subset参数
#df.drop_duplicates(['B'],keep=False)
print(df1)

-----------------
输出结果如下:
  A B C D
1 3 1 5 3
2 3 2 4 3

从上述示例可以看出,删除重复项后,行标签使用的数字是原来的,并没有从 0 重新开始,那么我们应该怎么从 0 重置索引呢?Pandas 提供的 reset_index() 函数会直接使用重置后的索引。如下所示:

import pandas as pd

data={
   
    'A':[1,3,3,3],
    'B':[0,1,2,0],
    'C':[4,5,4,4],
    'D':[3,3,3,3]
}
df=pd.DataFrame(data=data)
#去除所有重复项,对于B来说两个0是重复项
df=df.drop_duplicates(subset=['B'],keep=False)
#重置索引,从0重新开始
df.reset_index(drop=True)
-----------
输出结果如下:
  A B C D
0 3 1 5 3
1 3 2 4 3
  1. 指定多列同时去重

创建一个 DataFrame 对象,如下所示:

import pandas as pd
df = pd.DataFrame({'Country ID':[1,1,2,12,34,23,45,34,23,12,2,3,4,1],
                    'Age':[12,12,15,18, 19, 25, 21, 25, 25, 18, 25,12,32,18],
                   'Group ID':['a','z','c','a','b','s','d','a','b','s','a','d','a','f']})
#last只保留最后一个重复项
df_last = df.drop_duplicates(['Age','Group ID'],keep='last')

print(df_last)

----------------------
输出结果如下:
    Country ID  Age Group ID
0            1   12        a
1            1   12        z
2            2   15        c
3           12   18        a
4           34   19        b
5           23   25        s
6           45   21        d
8           23   25        b
9           12   18        s
10           2   25        a
11           3   12        d
12           4   32        a
13           1   18        f

总结

本文主要介绍了pandas去重的相关方法,后续我们将介绍pandas的统计函数。

获取更多技术资料,请点击!

标签:12,df,drop,神器,重复,pd,data,pandas,软件测试
From: https://www.cnblogs.com/hogwarts/p/17496328.html

相关文章

  • 自动化神器playwright
    一、前言 一提到WebUI自动化测试工具首要推荐的必属是Selenium,其优势在于跨平台、跨语言、完全开源、对商业用户也没有任何限制、支持分布式、拥有成熟的社区与学习文档等目前已经迭代更新到4版本。那么缺点也有比如环境配置、加载效率低、运行速度慢等。当然还有其他很......
  • 软件测试|数据处理神器pandas教程(五)
    前言上一篇文章我们介绍了pandas读写CSV文件的有关方法,本篇文章我们介绍pandas读取JSON文件的方法。pandas同样可以很方便地处理JSON文件。获取更多免费资料,请点击!关于jsonJSON(JavaScriptObjectNotation,JavaScript对象表示法),是存储和交换文本信息的语法,类似XML,但是JSON......
  • 软件测试|数据处理神器pandas教程(六)
    前言之前我们介绍了pandas读写csv文件,json文件,本篇文章我们来介绍一下pandas读写Excel文件。获取更多免费技术资料,请点击!关于ExcelExcel是由微软公司开发的办公软件之一,它在日常工作中得到了广泛的应用。在数据量较少的情况下,Excel对于数据的处理、分析、可视化有其独特的......
  • 软件测试|数据处理神器pandas教程(七)
    前言当进行数据分析时,我们会遇到很多带有日期、时间格式的数据集,在处理这些数据集时,可能会遇到日期格式不统一的问题,此时就需要对日期时间做统一的格式化处理。比如“Friday,March24,2023”可以写成“24/3/23”,或者写成“03-24-2023”。获取更多免费技术资料,请点击!日期格式......
  • 【实用软件测试教程】6-功能测试
    文章目录6功能测试6.1系统测试概论6.2功能测试概述6.3功能测试的策略6.4功能测试的内容6.5功能测试的方法6.6.QuickTestProfessional(QTP)6功能测试功能模块是系统测试阶段的重点内容,软件系统开发的首要目标是确保功能正确。功能测试主要是根据软件系统的特征、操作描述和......
  • 软件测试的冒烟测试
    软件测试是软件开发过程中的一个非常重要的部分,能够有效地保证软件的质量和用户体验。而在软件测试中,冒烟测试被认为是一项非常关键的测试工作,因为它可以帮助团队快速定位软件中可能存在的问题,并及时进行修复。什么是冒烟测试?冒烟测试(SmokeTesting)也叫做构建验证测试(BuildVerific......
  • 软件测试四大测试
    单元测试是一种针对程序中最小可测试单元(通常是函数或方法)的测试方法。下面是进行单元测试的一般步骤:1.确定被测试的单元:选择要测试的函数或方法,并分析其输入、输出、边界条件等特性。2.编写测试用例:根据被测试单元的特性,编写测试用例,包括针对不同情况的测试输入和期望......
  • Loop or Iterate over all or certain columns of a dataframe in Python-pandas 遍历
    Inthisarticle,wewilldiscusshowtolooporIterateoverallorcertaincolumnsofaDataFrame?Therearevariousmethodstoachievethistask.Let’sfirstcreateaDataframeandseethat: Code:  Python3  #importpandaspackageim......
  • 从pandas dataframe保存csv文件,不带双引号
    为了保存来自pandasdataframe的csv文件,我尝试了以下方法:res.to_csv('seq_test.fa',header=False,index=False,sep='\t',quoting=csv.QUOTE_NONE)复制这给出了以下错误:needtoescape,butnoescapecharset如果我不使用quoting=csv.QUOTE_NONE。我通过以下方式......
  • 软件测试|Python科学计算神器numpy教程(一)
    前言之前我们使用matplotlib绘制了不一样的图形,其实在我们的绘制图像时,我们输入的数据都是经过处理之后再通过matplotlib以及pillow进行绘制的。我们在绘制图形的脚本里,引入了一个对数组执行数学运算和相关逻辑运算的第三方库——Numpy,当然numpy功能不止于此,它还是python科学计算的......