代码之家  ›  专栏  ›  技术社区  ›  Ratha

当一个列在pandas中具有唯一值时,如何计算?

  •  0
  • Ratha  · 技术社区  · 6 年前

    我的文件包含一个名为“id”的列;

    如:

    Id  bill
    ---------
    1   aaa
    2   bbb
    3   ccc
    1   ddd
    2   ee
    

    我想返回身份证的计数。应该在这里 count(data['Id')) = 3 (不是5)

    print(df.groupby('Id').count()) 打印包含行数和列数的整个文件。如何确保simple打印列中存在的唯一id?

    2 回复  |  直到 6 年前
        1
  •  1
  •   san    6 年前

    在最初的尝试中,只需使用len()使用返回数据帧的长度

    print(len(df.groupby('Id').count()))
    
        2
  •  2
  •   jezrael    6 年前

    使用 Series.nunique 以下内容:

    a = df["Id"].nunique()
    print (a)
    3
    

    或将值转换为集合并获取长度:

    a = len(set(df["Id"]))
    print (a)
    3
    
        3
  •  1
  •   meTchaikovsky    6 年前

    你也可以使用 collections.Counter ,假设 tmp 是你的数据帧

    from collections import Counter
    
    count = Counter(tmp['Id'])