精华内容
下载资源
问答
  • 2018-09-19 15:16:25

    查询LSCJMB表中F_CJZY对应列值重复的数据:

    SELECT F_CJZY,COUNT(F_CJZY) FROM LSCJMB GROUP BY F_CJZY HAVING COUNT( F_CJZY )>1

    查出了重复的列及重复行数:

    删除全部涉及重复的数据:
    delete from LSCJMB where F_CJZY in(SELECT F_CJZY,COUNT(F_CJZY) FROM LSCJMB GROUP BY F_CJZY HAVING COUNT( F_CJZY )>1);

    需要保存某一列,然后删除剩余的列的话,用如下sql,删除了输了F_GUID最大列以外的所有数据。可以当作是 ID 最大的列。
    delete from LSCJMB where F_GUID not in(select t.F_GUID1 from (select max (a.F_GUID) F_GUID1 from LSCJMB a group by a.F_CJZY)as t );

    更多相关内容
  • 现有一张表如上:content重复数据,我想去掉条(考虑其他),显示成下面的结果select * from t_xf_care_education where id in (select min(id) from t_xf_care_education group by content);...

    现有一张表如上:content列有一个重复的数据,我想去掉一条(不考虑其他列),显示成下面的结果


    select * from t_xf_care_education where id in (select min(id) from t_xf_care_education group by content);

    格式:

    查找不重复列:

    select * from 表名 where 列1 in (select min(列1) from 表名 group by 列3)

    其中 列1最好是不会重复的主键(自增,类型int,bigint等)。

    如果是uuid生成方式生成的主键,我们考虑其他实现方式,或寻找别列。

    删除重复数据:(慎用)

    delete 表名 where 列1 not in (select min(列1) from 表名 group by 列3)


    展开全文
  • Python按照某些去重

      
    Python按照某些列去重,可用drop_duplicates函数轻松处理。本文致力用简洁的语言介绍该函数。
      


      

    一、drop_duplicates函数介绍

      
    drop_duplicates函数可以按某列去重,也可以按多列去重。具体语法如下:

    DataFrame.drop_duplicates(subset=None,keep='first',inplace=False)
    

    代码解析:
      
    DataFrame:待去重的数据框。

    subset:用来指定特定的列,根据指定的列对数据框去重。默认值为None,即DataFrame中一行元素全部相同时才去除。

    keep:对重复值的处理方式,可选{‘first’, ‘last’, ‘False’}。默认值first,即保留重复数据第一条。若选last为保留重复数据的最后一条,若选False则删除全部重复数据。

    inplace:是否在原数据集上操作。默认值False,即把原数据copy一份,在copy数据上删除重复值,并返回新数据框(原数据框不改变)。值为True时直接在原数据视图上删重,没有返回值。

      

    二、加载数据

      
    加载有重复值的数据,并展示数据。

    # coding: utf-8
    import os             #导入设置路径的库
    import pandas as pd  #导入数据处理的库
    import numpy as np   #导入数据处理的库
    
    os.chdir('F:/微信公众号/Python/26.基于多列组合删除数据框中的重复值')  #把路径改为数据存放的路径
    name = pd.read_csv('name.csv',sep=',',encoding='gb18030')
    name
    

    得到结果:
    在这里插入图片描述
    :后文所有的数据操作都是在原始数据集name上进行。

      

    三、按照某一列去重

      

    1. 按照某一列去重(参数为默认值)

    按照name1对数据框去重。

    new_name_1 = name.drop_duplicates(subset='name1')
    new_name_1
    

    得到结果:
    在这里插入图片描述

      从结果知,参数为默认值时,是在原数据的copy上删除数据,保留重复数据第一条并返回新数据框。感兴趣的可以打印name数据框,删重操作不影响name的值。
      

    2. 按照某一列去重(改变keep值)

    2.1 实例一(keep=‘last’)

    按照name1对数据框去重,并设置keep=‘last’。

    new_name_1 = name.drop_duplicates(subset='name1',keep='last')
    new_name_1
    

    得到结果:
    在这里插入图片描述

      从结果知,参数keep=‘last’,是在原数据的copy上删除数据,保留重复数据最后一条并返回新数据框,不影响原始数据框name。
      
    2.2 实例二(keep=False)

    按照name1对数据框去重,并设置keep=False。

    new_name_2 = name.drop_duplicates(subset='name1',keep=False)
    new_name_2
    

    得到结果:
    在这里插入图片描述

    从结果知,参数keep=False,是把原数据copy一份,在copy数据框中删除全部重复数据,并返回新数据框,不影响原始数据框name。
      

    3. 按照某一列去重(inplace=True)

      
    按照name1去重,并设置inplace=True

    new_name_3 = name.drop_duplicates(subset='name1',inplace=True)
    new_name_3
    

    结果中new_name_3的值为空,即设置inplace=True时没有返回结果,是在原始数据框name上直接进行操作。打印name可得结果:
    在这里插入图片描述

    结果和按照某一列去重(参数为默认值)是一样的。如果想保留原始数据框直接用默认值即可,如果想直接在原始数据框删重可设置参数inplace=True
      

    四、按照多列去重

      
    对多列去重和一列去重类似,只是原来根据一列是否重复删重。现在要根据指定的列判断是否存在重复(顺序也要一致才算重复)删重。接下来看一个实例:

    new_name = name.drop_duplicates(subset=['name1','relation'])
    new_name
    

    得到结果:
    在这里插入图片描述
      原始数据中只有第二行和最后一行存在重复,默认保留第一条,故删除最后一条得到新数据框。想要根据更多列数去重,可以在subset中添加列。如果不写subset参数,默认值为None,即DataFrame中一行元素全部相同时才去除。

      从上文可以发现,在Python中用drop_duplicates函数可以轻松地对数据框进行去重。但是对于两列中元素顺序相反的数据框去重,drop_duplicates函数无能为力。如需处理这种类型的数据去重问题,参见基于多列组合删除数据框中的重复值
      
    你可能感兴趣:
    用Python绘制皮卡丘
    用Python绘制词云图
    Python画好看的星空图(唯美的背景)
    Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

    长按(扫一扫)识别上方二维码学习更多Python和建模知识,让你的学习和工作更出彩。
    展开全文
  • pandas数据分析实战之去除重复值

    千次阅读 2021-09-15 11:22:07
    Pandas指定行进行去重更新加载数据sample抽样函数指定需要更新的append直接添加append函数用法根据某一列key进行去重(key唯一) 加载数据 首先,我们需要加载到所需要的数据,这里我们所需要的数据过...

    加载数据

    首先,我们需要加载到所需要的数据,这里我们所需要的数据是同过sample函数采样过来的。

    import pandas as pd 
    #这里说明一下,clean_beer.csv数据有两千多行数据
    #所以从其中采样一部分,来进行演示,当然可以简单实用data.head()也可以做练习
    data = pd.read_csv('clean_beer.csv')
    data_sam = data.sample(frac=0.1,weights=data['ounces'].values)
    data_sam1 = data_sam
    data_sam
    

    我们采用data[‘ounces’]列为权重对数据进行采样,并将结果赋值给data_sam1,其中data_sam和data_sam1是后续我们需要用到的两个数据(因为需要将两个数据合并,并去除重复)

    此时,data_sam和data_sam1的数据是一样的。

    data_sam数据

    data_sam
    

    data_sam
    data_sam1数据

    data_sam1
    

    在这里插入图片描述

    sample抽样函数

    简要介绍一下sample函数

    df.sample()就是抽样函数,参数如下:

    df.sample(n=None,frac=None,replace=Flase,weights=None,random_state=None,axis=None)
    

    参数说明:

    **n:**就是样本量,如果不写,就是抽一条数据

    **frac:**抽样比,就是样本量占全样本的比例,如frac=0.3 ,注意n和frac不能共存

    replace:是否放回,默认是不放回,如果有放回(replace=True)可以选择比df长度更多的元素回来

    weights:样本权重,自动归一化,可以以某一列为权重

    random_state:随机状态。就是为了保证程序每次运行得到的结果都一样

    axis:抽样维度,0是行,1是列,默认为0

    指定需要更新的值

    接下来,我们对data_sam1的值进行更新,主要是将data_sam1的ounces属性列值加上后缀’.0 oz’,具体代码如下:

    data_sam1['ounces'] = data_sam1['ounces'].astype('str') + '.0 oz'
    data_sam1
    

    对data_sam1的值进行显示,其中我们可以看到,ounces的值已经全部加上了我们所指定的后缀:
    在这里插入图片描述
    现在,我们已经得到的新的值,接下来的目标就是如何将我们已经得到的新值,更新到data_sam

    append直接添加

    从标题可以看到,我们使用的是append方法进行直接添加。

    data_sam = data_sam.append(data_sam1,ignore_index=True)
    
    data_sam
    

    我们将data_sam1使用append方法添加到data_sam最后一行的后面。下面展示其结果,并详细介绍append的用法。
    append
    可以看到,行数已经有原来的241改为现在的482rows,显然我们此时已经成功使用append添加数据成功。不过我们想要的不止是简简单单的添加数据在最后一行,而是想要把我们增加后缀的那一列更新到原来的数据中,所以最后一步就是去重。

    append函数用法

    append()函数的语法为:

    DataFrame.append(other,ignore_index=False,verify_integrity=False,sort=None)
    

    参数说明:
    other: DataFrame,Series或Dict式对象,其行将添加到调用方DataFrame中。

    ignore_index: 如果为True,则将忽略源DataFrame对象中的索引。

    verify_integrity:如果为True,则在创建具有重复项的索引时引发ValueError 。

    sort: 如果源DataFrame列未对齐,则对列进行排序。 不建议使用此功能。 因此,我们必须传递sort=True来排序和静音警告消息。 如果传递了sort=False ,则不会对列进行排序,并且会忽略警告。

    根据某一列key值进行去重(key唯一)

    接下来,就是最后一个步骤,也就是根据ounces列对数据进行去重。
    通过duplicated()函数可以看到数据还是有很多重复的。

    data_sam.duplicated(['id'],keep='first')
    

    在这里插入图片描述

    DataFrame.drop_duplicated(self,subset = None,keep ='first')
    
    subset : 列标签或标签序列,可选仅考虑某些列来标识重复项,默认情况下使用所有列
    keep : {'first','last',False},默认为'first'
    		first:将重复项标记True为第一次出现的除外。
    		last:将重复项标记True为最后一次除外。
    		False:将所有重复项标记为True。
    

    既然知道数据中是有重复项的,通过对数据的观察可以看到,数据的id是唯一的,所以我们以id这一列为契机,来进行我们的去重操作。具体代码如下:

    data_sam = data_sam.drop_duplicates(subset = 'id')
    data_sam
    

    最后来看一看,我们最后的结果是不是已经成功去重,或者说是不是我们想要的最终结果呢???
    在这里插入图片描述
    根据上面的图片结果,可以看到我们已经执行成功,得到的确实是我们起初想要的一个数据结果。有兴趣的也可以去试一下merge和update联合的操作进行更新数据,看看是不是也能成功。

    到此,今天的博客学习记录就已经结束了,希望通过记录能够加强记忆,并帮到和我一样正在学习的你!!!

    展开全文
  • 当面对一堆数据,我们要提取一列的唯一的时候,如果单纯用人为一个个判断,显然是科学的,那么如何用index函数提取唯一呢 工具/原料 EXCEL2007以及以上版本 ...
  • R语言 数据集某一列不重复数据以及其个数 提取出某一列不重复数据 unique(data$Symbol) 不重复数据个数(Symbol的个数) length(unique(totaldata$Symbol))
  • =SUMPRODUCT(1/COUNTIF(A:A,A2:A6461)) 以上为查询EXCEL中某一列不重复的计算公式 本例查的是A列中A2到A6461行之间所有不重复的数量。
  • EXCEL函数实现从列数据中提取不重复值
  • Excel查询某一列重复数据

    万次阅读 2019-05-09 10:46:21
    这里单元格区域“A1:A8"有一列数据,现在想从这一列数据中找出每个数据重复个数,并显示B列。 输入公式,统计重复个数 单元格B2输入公式:=COUNTIF(A:A,A2) 然后按回车Enter键,就会B2位置看到相...
  • pandas 某一列不重复有多少

    万次阅读 2018-06-12 16:45:18
    以o2o大赛的数据为例 df_new = df[['User_id','Merchant_id']] df_new_1 = df_new.groupby(['User_id'])['Merchant_id'].nunique() ...在同一个'User_id'下,'Merchant_id'有多少个 df_new_1 = df_new.group...
  • 表中数据重复产生,通过个字段判断是否重复,使用该字段进行分组 使用row_number() over()函数 SELECT T.* FROM (SELECT A.*, ROW_NUMBER() OVER(PARTITION BY 需要分组的字段 ORDER BY 时间字段 DESC) RW ...
  • 查询不重复值总数 select count(distinct lieming ) from table where tiaojian=1 查询不重复值具体值 select distinct lieming from table where tiaojian=1
  • excel如何查一列重复数据

    千次阅读 2019-11-05 11:33:27
    1.打开excel文件,选中需要核对数据一列。 2.点击开始选项卡-然后点击-条件格式,弹出的菜单中点击-突出显示单元格规则。 3.弹出的菜单中选择重复值 4.弹出的对话框中选择[重复值]设置为[浅红色填充...
  • (1)查询某一列重复记录 语句: SELECT Name FROM dbo.Member t WHERE Name IN (SELECT Name FROM dbo.Member GROUP BY Name HAVING COUNT(Name)>1 ) ORDER BY t.Name 查询结果: (2)查询某一列重复的...
  • PB数据窗去掉某一列重复值

    千次阅读 2016-08-09 16:39:43
    也就是PB数据窗怎么去掉某一列重复值。。。。。。 如显示结果如下:   想到得到如下显示结果:   怎么来做?其实吧,很简单,只需要打开数据窗对象,单击“rows”菜单,找到“Suppress ...
  • Excel统计某列重复值数量方法

    千次阅读 2019-11-28 19:04:55
    比如要统计重复的列为A列,要统计的A列隔壁插入一空列B列,要统计的数据一列对应位置输入公式=COUNTIF(A:A,A2),然后将公式向下填充,即可得到整列的重复统计数据。 =COUNTIF(A:A,A2) 解读:A:A 选择A列自动...
  • 假设我们有 “表1” 这样数据,需要删除A重复行,同时保留重复行中B最大所在的行,即需要得到 “表2” 的结果。 table = pd.DataFrame({"A":["甲", "乙", "甲", "甲"], "B":[2,2,3,4]}) table 表1: ...
  • 数据清洗主要分为三步: 重复值处理——删除(有几个相同就删除还是全部得相同) 缺失值处理——删除,填充...重复值处理 ① 先用duplicated()方法进行逻辑判断,确定是否有重复值 data = pd.read_csv("dat...
  • 最近做项目,从其他数据库导入的数据太多,为了方便查询是否有重复数据列,可以使用以下的sql语句查询 SELECT title, COUNT( title) FROM mytable GROUP BY title HAVING COUNT( title) > 1 说明:title...
  • Pandas统计指定列不重复的数目

    千次阅读 2019-10-31 19:14:01
    DataFrame.duplicated(subset = None,keep =‘first’ )返回boolean数组 个bool代表行 参数: subset:用来指定特定的,默认所有 keep:{‘first’,‘last’,False},默认’first’ first:...
  • 我想要统计每一列中不同出现的次数,从而对数据进一步处理(比如制图等),可以用如下的代码实现: import pandas as pd import os os.chdir(r'C:\Users\Administrator\Desktop') df = pd.read_excel('数据.xls')...
  • 【DataFrame】统计重复值

    千次阅读 2019-05-17 16:48:25
    举个简单地栗子: import pandas as pd x=[{'id': 2, 'name':1,'value':1},{'id': 1, 'name':1,'value':2},{'id': 4, 'name':1,'value':3},{'id': 3, 'name':1,'value':4}] ...# 一列,比如查看name...
  • 需求说明 1、我需要查询某列不重复数据 2、并且显示不重复数据的所有项 sql语句如下 ...如果是仅仅查询某列不重复数据,只需要一列 效果如下 sql语句 select DISTINCT address from data ...
  • 在数据清理过程中,主要处理是缺失值,离群值和重复值。所谓清理是指对数据集进行丢弃,填充,替换和重复数据删除等操作,以达到消除异常,纠正错误和弥补丢失的目的。 缺失值 是数据记录中行记录丢失,也称为数据...
  • csv数据根据某一列内容删除重复

    千次阅读 2019-10-11 19:16:12
    *csv数据根据某一列内容删除重复行 利用Python爬虫获取了csv格式的数据,但数据每一行有重复内容,需要把含有重复项的整行删除掉,按照某列的内容删除重复行(按照整行同理),代码如下(按照自己的路径修改代码中...
  • 定位pandas指定重复数据

    千次阅读 2019-01-18 00:43:45
    最近需要把数据库A和数据库B的data进行merge,苦于每个数据库permnent的identifier一样(记为a和b好了),需要建立个link table。link table中,a和b应该是一一对应关系,但是经过统计发现出现了重复行!试了很...
  • 用pandas进行数据分析之前,必须先对缺失值、重复值和异常值进行处理。本文记录了重复值的检测与处理方法。
  • import pandas as pd import csv l = list() with open('Result.csv','r') as read: reader = csv.reader(read) for i in reader: l.append(i) df = pd.DataFrame(l) df.drop_duplicates(subset=3,...
  • 展开全部假设表名是num,列名是a,则查询语句为:SELECT * FROM num WHERE a IN(SELECT a FROM num GROUP BY a HAVING COUNT(a)>...结果被存储在一e5a48de588b6323131333532363134313032313635333133336630653...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 531,474
精华内容 212,589
关键字:

数据不在同一列去重复值