精华内容
下载资源
问答
  • 2021-01-26 20:08:49

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
    经常有同学私信或留言询问相关问题,V号bitcarmanlee。github上star的同学,在我能力与时间允许范围内,尽可能帮大家解答相关问题,一起进步。

    去重获取唯一值是常见的需求,下面我们看看pandas里面如何实现去重。
    直接看代码

    import pandas as pd
    
    def test():
        df = pd.DataFrame({"c1": [1, 1, 2, 3, 1], "c2": [10, 20, 30, 40, 50]})
        print(df)
        print()
        result = df['c1'].unique()
        print(result)
        print(type(result))
        print(result.tolist())
        print()
    
        ret = df[df['c1'] == 1]['c2'].unique()
        print(ret)
        print(type(ret))
    

    运行上面的代码,得到如下结果

       c1  c2
    0   1  10
    1   1  20
    2   2  30
    3   3  40
    4   1  50
    
    [1 2 3]
    <class 'numpy.ndarray'>
    [1, 2, 3]
    
    [10 20 50]
    <class 'numpy.ndarray'>
    

    具体分析:
    1.如果要对某列去重获取谓一致,可以直接获取该列然后调用unique()方法即可。
    2.unique()方法得到的对象是numpy.ndarray类型,后续可以调用tolist方法转换为一个列表。
    3.如果我们想得到c1列值为1的情况下,c2列的去重置,可以先使用过滤逻辑df[‘c1’] == 1会返回True/False。 条件匹配时为真,条件不匹配时为假。 稍后它在df内传递并返回与True对应的所有行,然后按照前面的方法,取c2列再去重即可。

    更多相关内容
  • python 获取唯一值Say you have a list that contains duplicate numbers: 假设您有一个包含重复数字的列表: numbers = [1, 1, 2, 3, 3, 4] But you want a list of unique numbers. 但是,您需要一个唯一编号列表...

    python 获取唯一值

    Say you have a list that contains duplicate numbers:

    假设您有一个包含重复数字的列表:

    numbers = [1, 1, 2, 3, 3, 4]

    But you want a list of unique numbers.

    但是,您需要一个唯一编号列表。

    unique_numbers = [1, 2, 3, 4]

    There are a few ways to get a list of unique values in Python. This article will show you how.

    有几种方法可以获取Python中唯一值的列表。 本文将向您展示如何。

    选项1 –使用集合获取唯一元素 (Option 1 – Using a Set to Get Unique Elements)

    Using a set one way to go about it. A set is useful because it contains unique elements.

    使用一set方法进行操作。 集合很有用,因为它包含唯一元素。

    You can use a set to get the unique elements. Then, turn the set into a list.

    您可以使用一组来获取唯一元素。 然后,将集合变成一个列表。

    Let’s look at two approaches that use a set and a list. The first approach is verbose, but it’s useful to see what’s happening each step of the way.

    让我们看一下使用集合和列表的两种方法。 第一种方法很冗长,但是查看此过程中每个步骤正在发生的事情很有用。

    numbers = [1, 2, 2, 3, 3, 4, 5]
    
    
    def get_unique_numbers(numbers):
    
        list_of_unique_numbers = []
    
        unique_numbers = set(numbers)
    
        for number in unique_numbers:
            list_of_unique_numbers.append(number)
    
        return list_of_unique_numbers
    
    
    print(get_unique_numbers(numbers))
    # result: [1, 2, 3, 4, 5]

    Let’s take a closer look at what’s happening. I’m given a list of numbers, numbers. I pass this list into the function, get_unique_numbers.

    让我们仔细看看发生了什么。 我得到了一个数字清单, numbers 。 我将此列表传递给函数get_unique_numbers

    Inside the function, I create an empty list, which will eventually hold all of the unique numbers. Then, I use a set to get the unique numbers from the numbers list.

    在函数内部,我创建了一个空列表,该列表最终将包含所有唯一数字。 然后,我使用一个setnumbers列表中获取唯一数字。

    unique_numbers = set(numbers)

    I have what I need: the unique numbers. Now I need to get these values into a list. To do so, I use a for loop to iterate through each number in the set.

    我有我需要的:唯一的数字。 现在,我需要将这些值放入列表中。 为此,我使用了一个for循环来遍历集合中的每个数字。

    for number in unique_numbers:
           list_of_unique_numbers.append(number)

    On each iteration I add the current number to the list, list_of_unique_numbers. Finally, I return this list at the end of the program.

    在每次迭代中,我将当前数字添加到列表list_of_unique_numbers 。 最后,我在程序末尾返回此列表。

    There’s a shorter way to use a set and list to get unique values in Python. That’s what we’ll tackle next.

    有一种使用set和list在Python中获取唯一值的较短方法。 这就是我们接下来要解决的问题。

    集的更短方法 (A Shorter Approach with Set)

    All of the code written in the above example can be condensed into one line with the help of Python’s built-in functions.

    借助Python的内置函数,可以将以上示例中编写的所有代码压缩为一行。

    numbers = [1, 2, 2, 3, 3, 4, 5]
    unique_numbers = list(set(numbers))
    print(unique_numbers)
    # Result: [1, 2, 3, 4, 5]

    Although this code looks very different from the first example, the idea is the same. Use a set to get the unique numbers. Then, turn the set into a list.

    尽管此代码看起来与第一个示例非常不同,但是想法是相同的。 使用一组来获取唯一编号。 然后,将集合变成一个列表。

    unique_numbers = list(set(numbers))

    It’s helpful to think “inside out” when reading the above code. The innermost code gets evaluated first: set(numbers). Then, the outermost code is evaluated: list(set(numbers)).

    阅读上面的代码时,请考虑“由内而外”。 最里面的代码首先被评估: set(numbers) 。 然后,评估最外面的代码: list(set(numbers))

    选项2 –使用迭代来标识唯一值 (Option 2 – Using Iteration to Identify Unique Values)

    Iteration is another approach to consider.

    迭代是要考虑的另一种方法。

    The main idea is to create an empty list that’ll hold unique numbers. Then, use a for loop iterate over each number in the given list. If the number is already in the unique list, then continue on to the next iteration. Otherwise, add the number to it.

    主要思想是创建一个包含唯一数字的空列表。 然后,使用for循环遍历给定列表中的每个数字。 如果该数字已经在唯一列表中,则继续进行下一个迭代。 否则,将数字添加到其中。

    Let's look at two ways to use iteration to get the unique values in a list, starting with the more verbose one.

    让我们看一下两种使用迭代来获取列表中唯一值的方法,从更详细的方法开始。

    numbers = [20, 20, 30, 30, 40]
    
    
    def get_unique_numbers(numbers):
        unique = []
    
        for number in numbers:
            if number in unique:
                continue
            else:
                unique.append(number)
        return unique
    
    
    print(get_unique_numbers(numbers))
    # Result: [20, 30, 40]

    Here’s what’s happening each step of the way. First, I’m given a list of numbers, numbers. I pass this list into my function, get_unique_numbers.

    这是此过程中每个步骤正在发生的事情。 首先,给我一个数字列表, numbers 。 我将此列表传递到我的函数get_unique_numbers

    Inside the function, I create an empty list, unique. Eventually, this list will hold all of the unique numbers.

    在函数内部,我创建了一个空列表unique 。 最终,此列表将包含所有唯一编号。

    I use a for loop to iterate through each number in the numbers list.

    我使用for循环遍历numbers列表中的每个numbers

    for number in numbers:
           if number in unique:
               continue
           else:
               unique.append(number)

    The conditional inside the loop checks to see if the number of the current iteration is in the unique list. If so, the loop continues to the next iteration. Otherwise, the number gets added to this list.

    循环中的条件语句检查当前迭代的次数是否在unique列表中。 如果是这样,则循环继续进行下一次迭代。 否则,该号码将添加到此列表中。

    Here’s the important point: only the unique numbers are added. Once the loop is complete, then I return unique which contains all of the unique numbers.

    重要的是:仅添加唯一编号。 一旦循环完成,然后我返回unique包含所有唯一编号。

    一种较短的迭代方法 (A Shorter Approach with Iteration)

    There’s another way to write the function in fewer lines.

    还有另一种方法可以用更少的行编写函数。

    numbers = [20, 20, 30, 30, 40]
    
    
    def get_unique_numbers(numbers):
        unique = []
        for number in numbers:
            if number not in unique:
                unique.append(number)
        return unique
    #Result: [20, 30, 40]

    The difference is the conditional. This time it’s set up to read like this: if the number is not in unique, then add it.

    区别是有条件的。 这次将其设置为如下所示:如果该数字不是unique ,则添加它。

    if number not in unique:
        unique.append(number)

    Otherwise, the loop will move along to the next number in the list, numbers.

    否则,循环将移至列表中的下一个数字numbers

    The result is the same. However, it’s sometimes harder to think about and read code when the boolean is negated.

    结果是一样的。 但是,当布尔值被取反时,有时很难考虑和阅读代码。

    There are other ways to find unique values in a Python list. But you’ll probably find yourself reaching for one of the approaches covered in this article.

    还有其他方法可以在Python列表中查找唯一值。 但是您可能会发现自己已达到本文涵盖的方法之一。

    I write about learning to program, and the best ways to go about it on amymhaddad.com. Follow me on Twitter: @amymhaddad.

    我在amymhaddad.com上撰写了有关学习编程的文章,以及进行编程的最佳方法。 在Twitter上关注我: @amymhaddad

    翻译自: https://www.freecodecamp.org/news/python-unique-list-how-to-get-all-the-unique-values-in-a-list-or-array/

    python 获取唯一值

    展开全文
  •  当要key对应的时是比较简单的,通过 get(key)方法就可以,如通过 String value = keyAndValue.get(1) 即可得到key为1时,Map对应的数据,即此时 value的为 重复数据; 当要根据值取...

      Map是通过键值对来储存数据的(key和value),数据可以根据key映射到它的value;

    Map<Integer,String> keyAndValue = new LinkedHashMap<>();
                keyAndValue.put(1,"重复数据");
                keyAndValue.put(2,"重复数据");
                keyAndValue.put(3,"重复数据");
                keyAndValue.put(4,"特有数据");
    •   当要取key对应的值时是比较简单的,通过 get(key)方法就可以取到值,如通过
      String value = keyAndValue.get(1)

      即可得到key为1时,Map对应的数据,即此时 value的值为  重复数据;

    • 当要根据值取key时,就没有上面的直接的方法,而是要经过遍历获取
      String valueWanted = "重复数据";
      List<Integer> keyList = new ArrayList<>();
      for (Map.Entry<Integer,String> keyEntry : keyAndValue.entrySet()) {
            Integer keyWanted = 0;
            String getValue = keyEntry.getValue();
            if (valueWanted.equals(getValue)){
                    keyWanted = keyEntry.getKey();
                    keyList.add(keyWanted);
                    }
          }

      根据此方法则可得到满足条件的key的一个List;

    • 当需要满足一定条件的key时,可以在上一方法遍历时的 if 里条件判断加上相应的约束;也可以查找到一个符合条件的key的时候 break 跳出循环,即可限制只返回一个key;

    • 思路:当涉及先后操作的时候,可以取不同记录的开始时间来进行比较,以获得想要的数据。

      if (nextId.equals(Id)&& actHiActinstStartTime >= hisStartTime){
           key = actHiActinstEntry.getKey();
           break;
         }

       

    • 另外,当返回所有满足条件的key的一个集合的时候,也可以调用集合原有的方法来筛选自己想要的数据

      Collections.max(keyList);
      Collections.min(keyList);

      如以上两个方法,分别可以获得返回集合的最大值、最小值。

    展开全文
  • VLOOKUP函数很神奇,不过并非万能查找函数,比如根据著作查找所有人物。直接用VLOOKUP函数进行查找,只能查找到第...思路:在查找的时候,唯一值才可以查找,著作都不是唯一值,没办法直接查找。如果添加一个辅助列...

    VLOOKUP函数很神奇,不过并非万能查找函数,比如根据著作查找所有人物。

    04514c038620fa7f55aa3c00427d4593.png

    直接用VLOOKUP函数进行查找,只能查找到第一个对应的人物,没法查找到全部人物。

    =IFERROR(VLOOKUP($E2,$B:$C,2,0),"")

    48d90689c310ca81d9d0f3c0e9f51c1a.png

    究竟该如何突破VLOOKUP函数的限制,让VLOOKUP函数可以查找到全部对应值呢?

    思路:在查找的时候,唯一值才可以查找,著作都不是唯一值,没办法直接查找。如果添加一个辅助列,获取著作+次数,就变成了唯一值,这样就可以突破VLOOKUP函数的局限。

    添加一个辅助列次数,在A2输入公式下拉填充。

    =B2&COUNTIF($B$2:B2,B2)

    1e7bce138d5981a883851fcd0f273fb7.png

    区域采用$B$2:B2这种写法,估计很多初学者不理解,卢子这里详细说明一下。

    $B$2加美元$锁定行号和列号,这样下拉的时候,就不会进行任何改变,依然是$B$2,也就是绝对引用。

    554a4558261d96d54aaa968726c78d27.png

    B2因为没有加美元$锁定,所以下拉的时候就变成了B3、B4、B5……,这种就叫相对引用。

    5b8464136a3a05301af7c5bfc22d18df.png

    一个锁定,一个不锁定,这样下拉的时候,就可以让区域逐渐变大。用COUNTIF函数,就可以依次获取著作的出现次数。

    1d5d7ccb0d2b3ccfa7c5a452f5c736a9.png

    左边的查找区域原理知道了,现在来看右边如何用VLOOKUP函数查找。

    在F2输入公式下拉和右拉。

    =IFERROR(VLOOKUP($E2&COLUMN(A1),$A:$C,3,0),"")

    8da59b8e7008efa9799307d27398618c.png

    现在以红楼梦为例进行说明,红楼梦一共出现3次,也就是红楼梦1、红楼梦2、红楼梦3。

    e4db8fe185659375593aa6b5a6a8a0fb.png

    而E2单元格只是红楼梦缺少次数,数字1、2、3可以通过COLUMN函数获取。A就对应1,B就对应2,依次类推。

    c031f9adf315cca932f61007e08abf8a.png

    这样用下面的公式就完成了查找。

    =VLOOKUP($E2&COLUMN(A1),$A:$C,3,0)

    2d467168ca6b9ddca788d330bfc671e6.png

    不过这样直接查找,没有对应值会显示错误值,不太美观,因此嵌套一个IFERROR函数,让错误值显示空白。

    到此,就解释完毕了。其实,要学好函数,思路真的很重要。

    展开全文
  • 1、选中要对比的2列 2、选择开始-条件格式-突出显示单元格规则-重复值 3、设置规则,确定 4、重复值显示 5、唯一值显示
  • Excel使用过程中,有很场合都需要获取一组数据的不重复。获取不重复的方法有很,例如高级筛选法、透视表法、基础操作法和公式法。本例分别向大家介绍这四种方法如何使用。 工具/原料 Excel 高级筛选...
  • 想了解java8从list集合中取出某一属性的的集合案例的相关内容吗,*饼饼*在本文为您仔细讲解java8 list属性集合的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java8,list集合,属性集合,下面大家...
  • select distinct mr . id , ifnull ( mr . pid , 0 ) as pid , mr . name ...select distinct 查询name from 表 where 条件   转载于:https://www.cnblogs.com/sho560/p/5363222.html
  • 如何在一条sql中,对数据表中的数据进行分组,同时求每组最大(小)。 / 正文 / 测试案例 求每个班级中的年龄最大的学生 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- --------------------------....
  • 线性方程组解的分析:唯一解,无穷解以及无解

    万次阅读 多人点赞 2018-06-03 16:50:20
    根据定理3,我们也就不难推出非齐次线性方程组有唯一解的条件:即它的导出组只有零解。 结论 好了,最后总结一下线性方程组的解的各种情况: 任何线性方程组,只要满足 r ( A ) = r ( A ¯ ) r ( A ) =...
  • NOT NULL AUTO_INCREMENT, `record_month` char(7) NOT NULL , `customer_id` int(11) NOT NULL, PRIMARY KEY(`id`), UNIQUE KEY `record_month` (`record_month`, `customer_id`) #创建了联合唯一约束 当月份和用户...
  • 理论上相同数据个别字段不同重复问题
  • sql根据2列进行查询(确定唯一性)

    千次阅读 2020-03-21 16:34:07
    场景 例如代码,号码共同确定唯一性。 突然有个变态的需求,入参要10对代码和号码。 解决方案 错误的写法 要特别注意,如下写法是错的,...条件or实现 select * from t_ticket where (inv_kind='3100191130' a...
  • 展开全部表示唯一即需要A中的向量不能相互表示,也就是A中的向量线性无关时,由A中向量表示成b时表示方法唯32313133353236313431303231363533e58685e5aeb931333433643061一。条件:等价于AX=b这个方程有解。要理解一...
  • 大家可以看到在下图的A、B两列中,有部分行两个单元格中的数据相同,即为重复值,图中用红色标识,现在的需求就是从两列中提取唯一值到其他区域,次出现的重复值只提取一次,下面以Excel 2013和下图两列数据为例向...
  • Laravel 校验规则之字段值唯一性校验

    千次阅读 2017-04-05 17:27:17
    除了在数据表中设置用户名字段的唯一性以外,还必须在程序中加以判断 2.程序中判断的通常做法是:以该用户名作为搜索条件进行搜索,搜索不到数据表明可以注册,否则不能注册 3.在Laravel框架中提供了更好的解决方案...
  • ORA-00001: 违反唯一约束条件

    千次阅读 2019-12-03 12:22:36
    我用的是oracle的sequences,批量插入数据主键id的是sequences.nexval。但是服务器后台一直报主键唯一约束错误。 问了DBA说是数据库 RAC(Real Application Clusters)集群部署方案。说序列生成的主键肯定不会重复...
  • 我一张普通的积分记录表中,查询出符合条件的数据有3条,当然这是我针对一个用户来查询的,假如我需要获取这三条数据中的 task_correct 最大的那一条记录,我们可以这样来写 SELECT a.user_nam
  • 期中复习

    千次阅读 2020-04-10 20:48:11
    增加课程名称必须取唯一值的约束条件。 ALTER TABLE Course ADD UNIQUE(Cname); 删除基本表 DROP TABLE [RESTRICT| CASCADE];  RESTRICT:删除表是有限制的。  欲删除的基本表不能被其他表的约束所引用  ...
  • mysql唯一查询

    千次阅读 2018-02-28 17:28:00
    MySQL单一字段唯一其他字段差异性忽略查询。在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而...
  • NOT NULL 约束强制列不接受 NULL (NULL就是没有或缺)。NOT NULL 约束强制字段始终包含,即不向字段添加,就无法插入新记录或者更新记录,也就是在插入或更新行时该列必须有。 注意:NULL时没有...
  • int function(bool a,bool b,boolc){intx;x=0;if(a&&(b||c)){x=1;returnx;}}1、语句覆盖(SC)选择足够的测试数据,使得被测程序中的每条语句至少执行一次...或者使得程序中的每一个真分支和假分支至少...
  • 提要:这里以提取个对象中年龄大于18的对象为例 1、先创建一个构造函数 function person(name,age){ this.name=name; this.age=age; } 2、这里根据构造函数创建个对象,以作例子演示 var per1=new person("大...
  • 各种获取设备唯一标识的方法介绍, 实现获取唯一标识的最好的方法。
  • 例如,如果您将字符串作为索引标签,例如行'a'到'e',您可能想知道最大出现在第4行(而非行'd')。然而,在大熊猫0.16,所有上面只列出的方法提供的标签,从Index有问题的行,如果你希望中的那个标签的位置整数...
  • 因为 HAVING 是在分组的时候执行的,也就说:在分组的时候加上一个这样的条件:选择出来的 dateline 要和 本组最大的dateline 相等,执行的结果和下面的语句相同: SELECT *,max(dateline) as max_line FROM ...
  • 我就废话不说了,大家还是直接看代码吧~List list = new ArrayList();Order o1 = new Order("1","MCS-2019-1123");list.add(o1 );Order o2= new Order("2","MCS-2019-1124");list.add(o2);Order o3= new Order("3...
  • EF查询表的某个字段的最大

    千次阅读 2019-11-14 14:42:54
    var showidmax=db.user.Select(s=>s.showid).Max();
  • 2.2析范式与合范式

    万次阅读 2019-08-15 11:26:13
    本节给出命题公式的两种规范表示方法,这种规范的表达式能表达真表所能提供的一切信息 定义2.2命题变项及其否定统称作文宇.仅由有限个文字构成的析式称作简单析式仅由有限个文字构成的合式称作简单合式 P...
  • 线性方程组什么时候无解?个解?唯一解?

    万次阅读 多人点赞 2018-02-26 16:50:18
    非齐次线性方程组,无解,解,唯一解 非齐次线性方程组,就是方程组的等式右边不为0的方程组,系数加上方程等式右边的矩阵,叫做增广矩阵 【例1】求解下列线性方程组 化简后的有效方程组个数小于未知数个数,有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 238,494
精华内容 95,397
关键字:

多条件取唯一值