pandas重复行删除操作df.drop_duplicates和df.duplicated的区别

目录
  • 概念
    • df.duplicated()
    • df.dropduplicates(’col‘,keep=‘first’,inplace=False)
  • 实例

概念

df.duplicated()

使用df.cuplicated()来查看重复数据,返回True,False,数据类型是bool.

也可以指定某一列是否有重复值df.cuplidated(‘colname’),不指定则默认为第一列。

df.dropduplicates(’col‘,keep=‘first’,inplace=False)

用来删除重复行。

实例

读取数据

# %% 提取数据 从sqlite
import pandas as pd
from sqlalchemy import create_engine
'''创建sqlite3连接'''
eg = create_engine('sqlite:///I:/jianguoyun/Udoc/WorkDb/dataset2022.db')  #创建数据库连接
# 读取数据库文件
q_store = """
select *  from pj_store20220525
"""
# 读取表
cols= ['货号','品类','节庆','库位','合格','换包装','错码','维修','总数量' ]
df = pd.read_sql(q_store,eg)[cols]

计算重复项

# df.duplicated 计算重复项
cond = df.duplicated('货号') # 查看货号相同的项 df.duplicated返回的是布尔值
def_line = df[cond]
def_line

计算有多少个重复行

#有多少个重复行
dep_data = df.duplicated('货号').sum()
dep_data

用df.drop_duplicates提取夏季品类

# 用df.drop_duplicates提取夏季品类
df_category = df.query('节庆=="夏季"').drop_duplicates('品类',keep='last',inplace=False)
df_category['品类'].sort_values()

参数:

  • keep ,保留最后last还是第一行first,
  • inplace:是否替换原列表,false:不替换,True,替换。

到此这篇关于pandas重复行删除操作df.drop_duplicates和df.duplicated的区别的文章就介绍到这了,更多相关pandas df.drop_duplicates df.duplicated内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pandas去重复行并分类汇总的实现方法

    今天主要记录一下pandas去重复行以及如何分类汇总.以下面的数据帧作为一个例子: import pandas as pd data=pd.DataFrame({'产品':['A','A','A','A'],'数量':[50,50,30,30]}) pandas判断dataframe是否含有重复行数据用:df.duplicated() 第一次出现的数据为False.重复的数据行就被记录为True. 去掉重复行数据使用data.drop_duplicates(). 可以看到索引乱了,我们使用dat

  • pd.drop_duplicates删除重复行的方法实现

    目录 一.使用语法及参数 二.实操 1.例子一 2.例子二 3.删除重复项后重置索引 drop_duplicates 方法实现对数据框 DataFrame 去除特定列的重复行,返回 DataFrame 格式数据. 一.使用语法及参数 使用语法: DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False) 参数: subset – 指定特定的列 默认所有列 keep:{‘first’

  • pandas重复行删除操作df.drop_duplicates和df.duplicated的区别

    目录 概念 df.duplicated() df.dropduplicates(’col‘,keep=‘first’,inplace=False) 实例 概念 df.duplicated() 使用df.cuplicated()来查看重复数据,返回True,False,数据类型是bool. 也可以指定某一列是否有重复值df.cuplidated(‘colname’),不指定则默认为第一列. df.dropduplicates(’col‘,keep=‘first’,inplace=False) 用来

  • SQLServe 重复行删除方法

    Microsoft SQL Server 表不应该包含重复行和非唯一主键.为简洁起见,在本文中我们有时称主键为"键"或"PK",但这始终表示"主键".重复的 PK 违反了实体完整性,在关系系统中是不允许的.SQL Server 有各种强制执行实体完整性的机制,包括索引.唯一约束.主键约束和触发器. 尽管如此,在某些情况下还可能会出现重复的主键;如果出现此类情况,就必须清除重复主键.出现重复主键的情形之一是,在 SQL Server 外部的非关系数

  • python 删除excel表格重复行,数据预处理操作

    使用python删除excel表格重复行. # 导入pandas包并重命名为pd import pandas as pd # 读取Excel中Sheet1中的数据 data = pd.DataFrame(pd.read_excel('test.xls', 'Sheet1')) # 查看读取数据内容 print(data) # 查看是否有重复行 re_row = data.duplicated() print(re_row) # 查看去除重复行的数据 no_re_row = data.drop_d

  • Python Pandas 对列/行进行选择,增加,删除操作

    一.列操作 1.1 选择列 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])} df = pd.DataFrame(d) print (df ['one']) # 选择其中一列进行显示,列长度为最长列的长度 # 除了 index 和 数据,还会显示 列表头名,和 数据 类型 运行结果: a    1.0 b   

  • pandas 数据归一化以及行删除例程的方法

    如下所示: #coding:utf8 import pandas as pd import numpy as np from pandas import Series,DataFrame # 如果有id列,则需先删除id列再进行对应操作,最后再补上 # 统计的时候不需要用到id列,删除的时候需要考虑 # delete row def row_del(df, num_percent, label_len = 0): #print list(df.count(axis=1)) col_num = l

  • 用vbscript实现从文本文件中删除所有重复行的代码

    问: 您好,脚本专家!如何从文本文件中删除所有重复行? -- SW 答: 您好,SW.您知道,成为一名脚本专家便意味着开始永无止境地寻找给定问题的最终解决方案.(或者至少在我们的经理问为什么我们似乎从未真正完成什么时,我们是这么告诉他的:"老板,永无止境的寻找过程需要时间!")这就是为什么我们很高兴看到您的问题的原因.不久前 我们回答了一个关于从文本文件中删除重复名字的类似问题.我们想到的解决方案十分简单而且效果不错:只是我们不确定那是最佳解决方案.现在,很感谢您的问题,我们可以再次尝

  • pandas DataFrame行或列的删除方法的实现示例

    此文我们继续围绕DataFrame介绍相关操作. 平时在用DataFrame时候,删除操作用的不太多,基本是从源DataFrame中筛选数据,组成一个新的DataFrame再继续操作. 1. 删除DataFrame某一列 这里我们继续用上一节产生的DataFrame来做例子,原DataFrame如下: 我们使用drop()函数,此函数有一个列表形参labels,写的时候可以加上labels=[xxx],也可以不加,列表内罗列要删除行或者列的名称,默认是行名称,如果要删除列,则要增加参数axis=

  • Pandas 筛选和删除目标值所在的行的实现

    目录 1.筛选出目标值所在行 单列筛选 多列筛选 2.删除目标值所在的行 扩展补充案例:删除列为指定值所在的行 1.筛选出目标值所在行 单列筛选 # df[列名].isin([目标值])对当前列中存在目标值的行会返回True,不存在的返回False df[df[列名].isin([目标值])] 练习案例 import pandas as pd df_bom_data = pd.DataFrame([['A123',1200,5], ['B456',550,2], ['C437',500,10],

随机推荐