精华内容
下载资源
问答
  • 2021-04-12 15:32:10

    一、判断是否有重复值

    if (count($arr) != count(array_unique($arr))) {

    echo '该数组有重复值';

    }

    二、获取重复的值(一维数组的值完全相等是重复;如果是二维数组,二维数组中的值必须完全相同才是重复)

    function getRepeat($arr) {

    // 获取去掉重复数据的数组

    $unique_arr = array_unique ( $arr );

    // 获取重复数据的数组

    $repeat_arr = array_diff_assoc ( $arr, $unique_arr );

    return $repeat_arr;

    }

    三、二维数组局部键对应值数据判断是否重复

    /*

    作用:根据二维数组中的部分键值判断二维数组中是否有重复值

    参数:

    $arr —— 目标数组

    $keys —— 要进行判断的键值组合的数组

    返回:重复的值

    扩展:判断的键值

    */

    function getRepeat($arr,$keys) {

    $unique_arr = array();

    $repeat_arr = array();

    foreach ($arr as $k => $v) {

    $str = "";

    foreach ($keys as $a => $b) {

    $str .= "{$v[$b]},";

    }

    if( !in_array($str, $unique_arr) ){

    $unique_arr[] = $str;

    } else {

    $repeat_arr[] = $v;

    }

    }

    return $repeat_arr;

    }

    举个例子:

    $arr1 = array("aaa","bbb","ccc","ddd","aaa","bbb");

    $arr2 = array("aaa","bbb","ccc","ddd","aaa");

    $arr3 = array("aaa","bbb","lll","ddd","aaa","bbb");

    $arr = array($arr1,$arr2,$arr3);

    $keys = array(0,1,2);

    var_dump(getRepeat($arr,$keys));

    输出:

    D:\office\wamp64\www\test.php:46:

    array (size=1)

    0 =>

    array (size=5)

    0 => string 'aaa' (length=3)

    1 => string 'bbb' (length=3)

    2 => string 'ccc' (length=3)

    3 => string 'ddd' (length=3)

    4 => string 'aaa' (length=3)

    更多相关内容
  • 数据清洗之 重复值处理

    千次阅读 2020-04-19 10:25:23
    数据清洗重复值处理

    重复值处理

    • 数据清洗一般先从重复值和缺失值开始处理
    • 重复值一般采取删除法来处理
    • 但有些重复值不能删除,例如订单明细数据或交易明细数据等
    import pandas as pd
    import numpy as np
    import os
    
    os.getcwd()
    
    'D:\\Jupyter\\notebook\\Python数据清洗实战\\数据清洗之数据预处理'
    
    os.chdir('D:\\Jupyter\\notebook\\Python数据清洗实战\\数据')
    
    df = pd.read_csv('MotorcycleData.csv', encoding='gbk', na_values='Na')
    
    df.head(5)
    
    ConditionCondition_DescPriceLocationModel_YearMileageExterior_ColorMakeWarrantyModel...Vehicle_TitleOBOFeedback_PercWatch_CountN_ReviewsSeller_StatusVehicle_TileAuctionBuy_NowBid_Count
    0Usedmint!!! very low miles$11,412McHenry, Illinois, United States2013.016,000BlackHarley-DavidsonUnspecifiedTouring...NaNFALSE8.1NaN2427Private SellerClearTrueFALSE28.0
    1UsedPerfect condition$17,200Fort Recovery, Ohio, United States2016.060BlackHarley-DavidsonVehicle has an existing warrantyTouring...NaNFALSE10017657Private SellerClearTrueTRUE0.0
    2UsedNaN$3,872Chicago, Illinois, United States1970.025,763Silver/BlueBMWVehicle does NOT have an existing warrantyR-Series...NaNFALSE100NaN136NaNClearTrueFALSE26.0
    3UsedCLEAN TITLE READY TO RIDE HOME$6,575Green Bay, Wisconsin, United States2009.033,142RedHarley-DavidsonNaNTouring...NaNFALSE100NaN2920DealerClearTrueFALSE11.0
    4UsedNaN$10,000West Bend, Wisconsin, United States2012.017,800BlueHarley-DavidsonNO WARRANTYTouring...NaNFALSE10013271OWNERClearTrueTRUE0.0

    5 rows × 22 columns

    def f(x):
        if '$' in str(x):
            x = str(x).strip('$')
            x = str(x).replace(',', '')
        else:
            x = str(x).replace(',', '')
        return float(x)
    
    df['Price'] = df['Price'].apply(f)
    
    df['Mileage'] = df['Mileage'].apply(f)
    
    df.head(5)
    
    ConditionCondition_DescPriceLocationModel_YearMileageExterior_ColorMakeWarrantyModel...Vehicle_TitleOBOFeedback_PercWatch_CountN_ReviewsSeller_StatusVehicle_TileAuctionBuy_NowBid_Count
    0Usedmint!!! very low miles11412.0McHenry, Illinois, United States2013.016000.0BlackHarley-DavidsonUnspecifiedTouring...NaNFALSE8.1NaN2427Private SellerClearTrueFALSE28.0
    1UsedPerfect condition17200.0Fort Recovery, Ohio, United States2016.060.0BlackHarley-DavidsonVehicle has an existing warrantyTouring...NaNFALSE10017657Private SellerClearTrueTRUE0.0
    2UsedNaN3872.0Chicago, Illinois, United States1970.025763.0Silver/BlueBMWVehicle does NOT have an existing warrantyR-Series...NaNFALSE100NaN136NaNClearTrueFALSE26.0
    3UsedCLEAN TITLE READY TO RIDE HOME6575.0Green Bay, Wisconsin, United States2009.033142.0RedHarley-DavidsonNaNTouring...NaNFALSE100NaN2920DealerClearTrueFALSE11.0
    4UsedNaN10000.0West Bend, Wisconsin, United States2012.017800.0BlueHarley-DavidsonNO WARRANTYTouring...NaNFALSE10013271OWNERClearTrueTRUE0.0

    5 rows × 22 columns

    df.info()
    
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 7493 entries, 0 to 7492
    Data columns (total 22 columns):
    Condition         7493 non-null object
    Condition_Desc    1656 non-null object
    Price             7493 non-null float64
    Location          7491 non-null object
    Model_Year        7489 non-null float64
    Mileage           7467 non-null float64
    Exterior_Color    6778 non-null object
    Make              7489 non-null object
    Warranty          5108 non-null object
    Model             7370 non-null object
    Sub_Model         2426 non-null object
    Type              6011 non-null object
    Vehicle_Title     268 non-null object
    OBO               7427 non-null object
    Feedback_Perc     6611 non-null object
    Watch_Count       3517 non-null object
    N_Reviews         7487 non-null object
    Seller_Status     6868 non-null object
    Vehicle_Tile      7439 non-null object
    Auction           7476 non-null object
    Buy_Now           7256 non-null object
    Bid_Count         2190 non-null float64
    dtypes: float64(4), object(18)
    memory usage: 1.3+ MB
    
    any(df.duplicated())
    
    True
    
    # 显示重复数据
    # df[df.duplicated()] 
    
    # 统计重复数据
    np.sum(df.duplicated())
    
    1221
    
    # 删除重复值
    df.drop_duplicates(inplace=True)
    
    df.columns
    
    Index(['Condition', 'Condition_Desc', 'Price', 'Location', 'Model_Year',
           'Mileage', 'Exterior_Color', 'Make', 'Warranty', 'Model', 'Sub_Model',
           'Type', 'Vehicle_Title', 'OBO', 'Feedback_Perc', 'Watch_Count',
           'N_Reviews', 'Seller_Status', 'Vehicle_Tile', 'Auction', 'Buy_Now',
           'Bid_Count'],
          dtype='object')
    
    # 根据指定变量判断重复值
    df.drop_duplicates(subset=['Condition', 'Condition_Desc', 'Price', 'Location'], inplace=True)
    
    # 重复已经被删除
    np.sum(df.duplicated())
    
    0
    
    展开全文
  • 数据预处理之重复值

    千次阅读 2022-01-28 14:06:48
    1、重复值的识别 1.1 DataFrame识别重复值-duplicated() 1.2 Serier识别重复值-is_unique 2、统计重复行的数量-duplicated().sum() 3、重复值的处理 0、前言 在实际数据采集、数据处理和数据分析中,经常会...

    目录

    0、前言

    1、重复值的识别

    1.1 DataFrame识别重复值-duplicated()

    1.2 Serier识别重复值-is_unique

     2、统计重复行的数量-duplicated().sum()

     3、重复值的处理


    0、前言

    在实际数据采集、数据处理和数据分析中,经常会遇到的一个问题就是:重复数据。重复数据在进行数据分析或数据挖掘的过程中,对其输出结果有重要的影响。比如,在逻辑回归分析中,重复数据会影响模型的拟合优度;数据分析中,重复数据会影响预测内容准确性。所以,处理重复值数据有着重要的意义和作用。

    1、重复值的识别

    1.1 DataFrame识别重复值-duplicated()

    data.duplicated()
    data.duplicated("sex")

     

    1.2 Serier识别重复值-is_unique

    import pandas as pd
    s = pd.Series(range(5),index=['a','a','b','b','c'])
    s.index.is_unique

     2、统计重复行的数量-duplicated().sum()

    data.duplicated().sum()

     

     3、重复值的处理

    数据去重是处理重复值的主要方法,但如下几种情况慎重去重:

    (1)样本不均衡时,故意重复采样的数据;

    (2)分类模型,某个分类训练数据过少,可以采取简单复制样本的方法来增加样本数量

    重复记录用户检测业务规则问题

    (3)事务型数据,尤其与钱相关的业务场景下出现重复数据时,如重复订单,重复出库申请

    data.drop_duplicates()
    data.drop_duplicates(["age"]) #删除数据中指定列值相同的记录

     

     

    展开全文
  • 用pandas进行数据分析之前,必须先对缺失值、重复值和异常值进行处理。本文记录了重复值的检测与处理方法。

    系列文章目录


    Python数据分析入门笔记1——学习前的准备
    Python数据分析入门笔记2——pandas数据读取
    Python数据分析入门笔记3——数据预处理之缺失值


    前言

    pandas可以用isnull(),isna(),notnull()和notna()四个方法来检测缺失值。
    若要直观地统计表中各列的缺失率,可以用自定义函数或者missingno库来实现。

    1. 如果缺失数据只有个别几个,可以直接用dropna()方法按行删除;

    例如:要从一个DataFrame中,删掉列1内容为NaN或者列2内容为NaN的行,并且删除后覆盖更新原数据
    DataFrame名称.dropna(axis=0, subset=[‘列1’,‘列2’], inplace=True)

    1. 如果这一列80%以上数据都缺失,可以考虑用drop()方法直接删除这一列;

    例如:要从一个DataFrame中,列1和列2中缺失了绝大部分数据,那么可以用axis=1来代表删除列
    DataFrame名称.drop(axis=1, subset=[‘列1’,‘列2’])

    1. 如果缺失数据的这列,数据不是时间序列类型,那可以直接用默认值或者统计值来填充;

    例如:将这个DataFrame对象中的所有缺失值都填充为缺失值前面的值。
    DataFrame名称.fillna(method=‘ffill’)

    1. 如果缺失数据的这一列是时间序列类型,通常用线性插补法来插补数据。

    例如:结合线性插值法对这个DataFrame对象中的缺失值进行插补。
    DataFrame名称.interpolate(method=‘linear’)


    一、重复值的检测

    pandas中使用duplicated()方法来检测数据中的重复值。检测完数据后会返回一个由布尔值组成的Series类对象,该对象中若包含True,说明该值对应的一行数据为重复项。

    DataFrame.duplicated(subset=None, keep=‘first’)

    参数说明取值和解释
    subset表示识别重复项的列索引或列索引序列。默认标识所有的列索引
    keep表示采用哪种方式保留重复项。‘first’,默认值,删除重复项,仅保留第一次出现的数据项。
    ‘last’,删除重复项,仅保留最后一次出现的数据项。
    ‘False’,表示将所有相同的数据都标记为重复项。

    用法如下:

    import pandas as pd
    import numpy as np 
    stu_info=pd.DataFrame({'序号':['S1','S2','S3','S4','S4'],
                    '姓名':['张三','李四','王五','赵六','赵六'],
                    '性别':['男','男','女','男','男'],
                    '年龄':[15,16,15,14,14],
                    '住址':['苏州','南京',np.nan,np.nan,np.nan]})
    # 检测stu_info对象中的重复值
    stu_info.duplicated()
    

    原始数据:
    在这里插入图片描述

    输出结果:
    在这里插入图片描述
    对比两次结果,我们能发现,行索引号为4的数据和行索引号为3的数据完全相同,所以我们调用duplicated()方法会默认保留第一次出现的数据,将后面出现的重复值标记为True。

    若想筛选出重复值标记为True的所有数据,可以用如下代码:

    # 筛选stu_info中重复值标记为True的数据记录
    stu_info[stu_info.duplicated()]
    

    运行结果如下:
    在这里插入图片描述

    二、重复值的处理

    对于重复值,pandas中一般使用drop_duplicates()方法删除重复值。

    DataFrame.drop_duplicates(subset=None, keep=‘first’, inplace=False, ignore_index=False)

    参数说明:

    参数说明取值和解释
    subset表示删除重复项的列索引或列索引序列,默认删除所有的列索引。
    keep表示采用哪种方式保留重复项。‘first’,默认值,删除重复项,仅保留第一次出现的数据项。
    ‘last’,删除重复项,仅保留最后一次出现的数据项。
    ‘False’,表示将所有相同的数据都标记为重复项。
    inplace表示是否放弃副本数据,返回新的数据,默认为FalseTrue,放弃副本,更新原数据。
    False,不更新原数据。
    ignore_index表示是否对删除重复值后的对象的行索引重新排序,默认为False。True,重新排序。
    False,不重新排序。

    用法如下:

    # 删除stu_info对象中的重复值
    stu_info.drop_duplicates()
    

    执行结果:
    在这里插入图片描述
    我们可以看出,行索引为4的一行数据被删除了。


    总结

    重复值的检测与处理比较简单。

    展开全文
  • 二、重复值 获取数据源的时候可能因为各种原因会导致获取到完全重复的数据,对于这样的数据我们没必要进行重复统计,因此需要找出重复值并删除,这里也提供3种寻找重复值的思路:countif函数、条件格式和数据透视表...
  • 前言 使用Pandas进行数据预处理时需要了解Pandas的基础数据结构Series和DataFrame。若是还不清楚的可以再去看看我之前的三篇博客...本文承接上一篇:一文速学-Pandas处理缺失操作各类方法详解 此篇博客基于Jup..
  • pandas中DataFrame如何检测重复值

    千次阅读 2021-05-25 15:09:19
    subset:如果你认为几个字段重复,则数据重复,就把那几个字段以列表形式放到subset后面。默认是所有字段重复重复数据。 keep: 默认为’first’ ,也就是如果有重复数据,则第一条出现的定义为False,后面的重复...
  • 住院号 姓名 等唯一值变量的检查与筛选 重复值所在的行 使用本地数据 鸢尾花(yuān wěi huā)做示例 #加载内置数据 data(iris) data=iris #因为iris这里没有唯一的ID,像姓名,住院号no.. #手动生成一个 no,代表...
  • 出现次数结果列 1 =COUNTIF($B$3:B3,B3) 1 1 =COUNTIF($B$3:B4,B4) 2 1 =COUNTIF($B$3:B5,B5) 3 等于1的统计结果就表示①在选择区域中是唯一个值②在选择的列当中属于唯一的值③在列当中属于首次出现的重复值 ...
  • 重复值处理——删除(有几个相同就删除还是全部得相同) 缺失值处理——删除,填充(均值,众数,中位数,前后相邻值),插值(拉格朗日插值,牛顿插值) 异常值处理——describe进行描述性分析+散点图+箱型图定位...
  • 01数据列缺失的4种处理方法数据缺失分为两种:一种是行记录的缺失,这种情况又称数据记录丢失;另一种是数据列的缺失,即由于各种原因导致的数据记录中某些列的空缺。不同的...
  • pandas的重复值的处理

    千次阅读 2020-11-14 22:17:17
            ...其中,前者用于标记是否有重复值,后者用于删除重复值,它们的判断标准是一样的,即只要两条数据中所有条目的值完全相等,就判断为重复值。 ...
  •  在数据清洗过程中,主要处理的是缺失值,异常值和重复值。所谓清洗,是对数据进行丢弃,填充,替换,去重等操作,实现去除异常,纠正错误,补足缺失的目的。 1. 数据列缺失的4种处理方法  数据缺失分为2种: 行...
  • Pandas DataFrame.drop_duplicates() 删除重复值
  • Excel去除重复值方法汇总

    千次阅读 2020-12-23 10:08:38
    什么是重复值顾名思义,重复值是指一组数据中有重复记录,去除这些重复的记录就叫去除重复值,具体有两种情况:源数据如图去重后结果一:所有在源数据中出现过二次及以上的记录均已经去除,结果二指,结果数据表示...
  • 将日常工作中遇到的数据异常值处理的方法进行总结,其中主要包括 缺失值,离群值、重复值 等处理方式思路,并且长期更新。 在数据清理过程中,主要处理是缺失值,离群值和重复值。所谓清理是指对数据集进行丢弃,...
  • 导读:在数据清洗过程中,主要处理的是缺失值、异常值和重复值。所谓清洗,是对数据集通过丢弃、填充、替换、去重等操作,达到去除异常、纠正错误、补足缺失的目的。作者:宋天龙如需...
  • 在处理字典时,我们可能会遇到这样的情况:字典中存在重复的...这样,重复值就可以合并在一起,我们可以在生成的新字典中看到它们。示例dictA={'Sun':5,'Mon':3,'Tue':5,'Wed':3}print("给定字典:",dictA)k_v_exch...
  • list.index( )获得的索引,但是如果list中含有的一样,例如含有两个11,22,这样每次获得的都是第一个的位置。那么怎么去解决这个问题呢?下面的程序对这个问题做了一定的解答#!/usr/bin/env python# -*- ...
  • python之重复值(duplicated)

    千次阅读 2021-08-06 11:40:16
    Duplicated函数功能:查找并显示数据表中的重复值 这里需要注意的是: 当两条记录中所有的数据都相等时duplicated函数才会判断为重复值 duplicated支持从前向后(first),和从后向前(last)两种重复值查找模式 ...
  • excel去掉重复值的函数用法

    千次阅读 2020-12-23 10:08:33
    Excel中的重复值具体该如何去掉呢?接下来是学习啦小编为大家带来的excel 去掉重复值的函数用法,供大家参考。excel 去掉重复值的函数用法函数去掉重复值步骤1:这里在D2单元格输入一串函数组合,可以用复制粘贴。=IF...
  • 缺失处理 Pandas数据对象中的缺失表示为NaN。 import pandas as pd # 读取杭州天气文件 df = pd.read_csv("E:/Data/practice/hz_weather.csv") # 数据透视表 df1 = pd.pivot_table(df, index=['天气...
  • Python读取CSV,将csv数据中的重复值进行统计,统计之后删除重复内容,只保留第一次出现的值 # -- coding: utf-8 -- import os import numpy as np import pandas as pd import time start=time.time() #用于...
  • 3.1 数据清洗:缺失值、异常值和重复值的处理-2代码实操说明:本文是《Python数据分析与数据化运营》中的“3.1 数据清洗:缺失值、异常值和重复值的处理-2 代码实操部分”。-----------------------------下面是正文...
  • Excel:删除一列中的重复值

    千次阅读 2021-09-27 14:51:53
    year这一列有重复的年份,但是我想只保留一个重复值,怎么办? 解决办法:选中数据后,点击“数据”下的“删除重复值”,然后在弹出的对话框,只选择“year”列 结果如下: 但是有没有发现,默认是把重复...
  • 检测与处理重复值 (1) 记录重复 '''series: ser.drop_duplicates() # 没有subset参数 dataframe: df.drop_duplicates(subset=['','']) 一般偶会传入subset, 根据subset中的键判断元素是否一致,如果一致,则数据重复--...
  • 删除重复值drop_duplicates()

    千次阅读 2019-09-29 11:08:37
    处理重复值, 使用drop_duplicates()方法; 其具体用法是: dataframe.drop_duplicates(subset=‘列1’) 表示删除dataframe中列1中有重复的值所在的行 并保留重复值中第一行 import pandas as pd data_list = pd....
  • Jupyter 数据重复值处理

    千次阅读 2020-03-03 11:22:35
    import os import pandas as pd import numpy as np os.chdir('D:\Workspaces\Jupyter') df = pd.read_excel('data_test.xlsx') df # 重复的是true df.duplicated() ...# 按照这两项查是否有重复值 df.duplic...
  • python删除列表重复值In python, the values that evaluate to False are considered Falsy values. The values are False, None, 0 and "". 在python中,评估为False的值被视为Falsy值。 值为False , None , 0和...
  • pandas如何去除重复值

    万次阅读 2020-02-17 10:16:06
    pandas如何去除重复值 在我们做数据分析时,我们所要处理的数据中难免会出现重复的数据,有些是我们需要的,有些是我们不需要的,甚至还会影响我们接下来数据分析的准确度。接下来,给大家介绍去除重复值的方法。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,047,376
精华内容 818,950
关键字:

重复值