pandas删除数据&重复值处理

简介: pandas删除数据&重复值处理

删除数据


根据列名删除列

使用 drop 来删除某列,指定要删除的轴,与对应 列/行名称/索引

df.drop('name', axis = 1)  # 删除单列
df.drop(['name', 'age'], axis = 1)  # 删除多列
复制代码

image.png


根据索引删除行

与上面删除列的方式相似,不过这里指定的是索引。

df.drop(0, axis=0)  # 删除单行
df.drop([0, 1], axis=0)  # 删除多行
复制代码

image.png


使用 loc 定位数据并删除

先使用 loc 定位某条件的数据,再获取索引 index ,然后使用 drop 删除。

df.drop(df.loc[df['name'] == '娜美'].index, axis=0)  # 删除定位到的行
复制代码

image.png


使用 del 删除列

del在原数据上进行修改,使用是要注意。

del df['age']
复制代码

image.png


同时删除行、列

drop 也可以同时指定行列进行删除,这里删除第一、二行并删除 age 列。

df.drop(columns=['age'], index=[0, 1])
复制代码

image.png


删除重复值

  • 指定 subset ,则根据指定的列作为参考进行去重,即如果某两行 a 值相同,则会删除第二次的出现的那一行,只保留第一次
  • 不指定 subset ,则根据所有列作为参考进行去重,只有两行数据 完全相同 才会进行去重。
df.drop_duplicates(subset=['a'], keep='first')
df.drop_duplicates(keep='first')
复制代码

image.png


筛查重复值


示例数据

df = pd.DataFrame({'name':['Python',
                        'Python',
                        'Java',
                        'Java',
                        'C'],
                   'count': [2, 2, 6, 8, 10]})
复制代码

image.png


判断某列是否有重复值

使用 values_counts() 对列中各值出现次数进行统计。结果默认按照降序进行排列,只需要判断第一行值的出现次数是否为1即可判断是否存在重复值。

df['a'].value_counts()
复制代码

image.png


使用 drop_duplicates() 对重复值进行删除,只保留第一次出现的值,判断处理后的值是否与原 df 相等,如果 False 就表示有重复值。

df.equals(df.drop_duplicates(subset=['a'], keep='first'))
False
复制代码


判断 DataFrame 是否有重复行

同样是使用 drop_duplicates() 对重复值进行删除,只保留第一次出现的值,此时不使用 subset 参数设置列,默认为全部列,判断处理后的值是否与原 df 相等,如果 False 就表示有重复值。


df.equals(df.drop_duplicates(keep='first'))
False
复制代码


统计重复行的数量

注意这里的统计是参照所有列来的,只有两行完全相同才会判断为重复行,所以统计的结果是 1 。

len(df) - len(df.drop_duplicates(keep="first"))
1
复制代码


显示重复的数据行

先删除重复的行,只保留第一次出现的,得到一个 行唯一 的数据集,再使用 drop_duplicates() 删除掉 df 中存在重复的所有数据,这次不保留第一次出现的重复值,将上述两个结果集进行合并,使用 drop_duplicates() 对新生成的数据集进行去重,即可得到重复行的数据。


df.drop_duplicates(keep="first")\
  .append(df.drop_duplicates(keep=False))\
  .drop_duplicates(keep=False)
复制代码


image.png


相关文章
|
8月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
595 0
|
8月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
708 0
|
10月前
|
存储 数据采集 数据处理
Pandas与NumPy:Python数据处理的双剑合璧
Pandas与NumPy是Python数据科学的核心工具。NumPy以高效的多维数组支持数值计算,适用于大规模矩阵运算;Pandas则提供灵活的DataFrame结构,擅长处理表格型数据与缺失值。二者在性能与功能上各具优势,协同构建现代数据分析的技术基石。
758 0
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
448 1
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
446 0
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
1847 0
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
407 2
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
640 3
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
260 1
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化

热门文章

最新文章