【问题标题】:How to check a value in a series is unique如何检查系列中的值是唯一的
【发布时间】:2016-04-14 11:42:30
【问题描述】:

我正在尝试测试 series 中的值是否是唯一值。我知道series.unique 可以在series 中给出一组唯一值,但不确定它是否适合我的情况。或者遍历series,但是效率不是很高,所以我想知道有没有更好的方法来做到这一点?

【问题讨论】:

    标签: python-3.x pandas unique


    【解决方案1】:

    您可以将duplicated 与参数keep=False 一起使用,然后通过~ 反转布尔值Series

    print df
      col
    0   a
    1   b
    2   a
    3   b
    4   c
    
    print df.col.duplicated(keep=False)
    0     True
    1     True
    2     True
    3     True
    4    False
    Name: col, dtype: bool
    
    print ~df.col.duplicated(keep=False)
    0    False
    1    False
    2    False
    3    False
    4     True
    Name: col, dtype: bool
    

    【讨论】:

      【解决方案2】:

      您可以结合布尔索引和内置 len() 来获取给定值的确切实例数量。

      假设您的 DataFrame 如下所示:

      In [155]: test_1 = pd.DataFrame(np.array([1,2,3,3,4]), columns=['A'])
      
      In [156]: test_1
      Out[156]: 
         A
      0  1
      1  2
      2  3
      3  3
      4  4
      

      您可以像这样获取值31 的实例数量:

      In [158]: len(test_1[test_1.A == 3])
      Out[158]: 2 ## two instances make for non-unique value
      
      In [159]: len(test_1[test_1.A == 1])
      Out[159]: 1 ## Unique value!!
      

      通过这种方式,您可以定义要测试的确切值并获取该值的实例数量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-09
        • 1970-01-01
        • 2016-06-29
        • 1970-01-01
        • 1970-01-01
        • 2019-11-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多