1 unique()

统计list中的不同值时,返回的是array.它有三个参数,可分别统计不同的量,返回的都是array.

当list中的元素也是list时,尽量不要用这种方法.

import numpy as np
a = [1,5,4,2,3,3,5]
# 返回一个array
print(np.unique(a))
# 返回该元素在list中第一次出现的索引
print(np.unique(a,return_index=True))
# 返回原list中每个元素在新的list中对应的索引
print(np.unique(a,return_inverse=True))
# 返回该元素在list中出现的次数
print(np.unique(a,return_counts=True))
# 当加参数时,unique()返回的是一个tuple,这里利用了tuple的性质,即有多少个元素即可赋值给对应的多少个变量
p,q,m,n = np.unique(a,return_index=True,return_inverse=True,return_counts=True)
print(p,q,m,n)
# [1 2 3 4 5]
# (array([1, 2, 3, 4, 5]), array([0, 3, 4, 2, 1]))
# (array([1, 2, 3, 4, 5]), array([0, 4, 3, 1, 2, 2, 4]))
# (array([1, 2, 3, 4, 5]), array([1, 1, 2, 1, 2]))
# [1 2 3 4 5] [0 3 4 2 1] [0 4 3 1 2 2 4] [1 1 2 1 2] # 注意当list中的元素不是数字而是list的时候,输出的数据类型与list中元素的长度有关
# 利用这种方法对list中元素去重或求里面元素的个数都不是好方法,很容易出错
b = [[1,2],[3,4]]
print(np.unique(b))
# b中有两个list,输出的却是4
print(len(np.unique(b)))
c = [[1,2],[3,4],[5]]
print(np.unique(c))
print(len(np.unique(c)))
# [1 2 3 4]
#
# [list([1, 2]) list([3, 4]) list([5])]
#

统计series中的不同值时,返回的是array,它没有其它参数

import pandas as pd
se = pd.Series([1,3,4,5,2,2,3])
print(se.unique())
# [1 3 4 5 2]

2 nunique()

可直接统计dataframe中每列的不同值的个数,也可用于series,但不能用于list.返回的是不同值的个数.

df=pd.DataFrame({'A':[0,1,1],'B':[0,5,6]})
print(df)
print(df.nunique())
# A B
# 0 0 0
# 1 1 5
# 2 1 6
# A 2
# B 3
# dtype: int64

也可与groupby结合使用,统计每个块的不同值的个数.

all_user_repay = all_user_repay.groupby(['user_id'])['listing_id'].agg(['nunique']).reset_index()
# user_id nunique
# 0 40 1
# 1 56 1
# 2 98 1
# 3 103 1
# 4 122 1

unique()与nunique()的更多相关文章

  1. 读书笔记6pandas简单使用

    一.序列Series,很像numpy中的array数组,可以由列表.元组.字典.numpy中的array来初始化 >>> from pandas import Series > ...

  2. LeetCode: Unique Paths I & II & Minimum Path Sum

    Title: https://leetcode.com/problems/unique-paths/ A robot is located at the top-left corner of a m  ...

  3. Python--unique()与nunique()函数

    参考:https://www.cnblogs.com/xxswkl/p/11009059.html 1 unique() 统计list中的不同值时,返回的是array.它有三个参数,可分别统计不同的量 ...

  4. [LeetCode] Unique Substrings in Wraparound String 封装字符串中的独特子字符串

    Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz" ...

  5. [LeetCode] Minimum Unique Word Abbreviation 最短的独一无二的单词缩写

    A string such as "word" contains the following abbreviations: ["word", "1or ...

  6. [LeetCode] Count Numbers with Unique Digits 计算各位不相同的数字个数

    Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...

  7. [LeetCode] Unique Word Abbreviation 独特的单词缩写

    An abbreviation of a word follows the form <first letter><number><last letter>. Be ...

  8. [LeetCode] Unique Binary Search Trees 独一无二的二叉搜索树

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  9. [LeetCode] Unique Binary Search Trees II 独一无二的二叉搜索树之二

    Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...

随机推荐

  1. 剑指offer-序列化和反序列化二叉树-树-python

    题目描述 请实现两个函数,分别用来序列化和反序列化二叉树   二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存.序列化可以基于先 ...

  2. input 限制 中文输入

    ime-mode:disabled是什么? 解决: 1.     ime-mode版本:IE5+专有属性 继承性:无    语法:     ime-mode : auto | active | ina ...

  3. [七月挑选]优化hexo目录,使本地图片能显示出来

    title: 优化hexo目录,使本地图片能显示出来 查看了一下从此蜕变作者的Hexo中添加本地图片,提炼了一些能优化本地图片存放及编写是图片查看的问题. 1.修改配置文件_config.yml 里的 ...

  4. egon消失的一天,空虚寂寞冷,苑模块的时间

    一.时间模块time python有三种表达时间的形式:时间戳.格式化字符串输出和元组. 时间戳:从1970年1月1日00:00:00开始按秒计算的偏移量,返回值是一个float型. 格式化字符串输出 ...

  5. PAT Advanced 1036 Boys vs Girls (25 分)

    This time you are asked to tell the difference between the lowest grade of all the male students and ...

  6. pdf幻灯片:圆锥曲线中的“三定”问题探究(一)

    预留的广告位! 下载该pdf文件,然后在adobe reader 的"视图"中使用"全屏模式"播放该幻灯片 #include <iostream> ...

  7. easyuUI实现客户分页显示逻辑分析

    页面 前端 前端easyUI,自带分页功能,添加pagination属性 前端会传给后端两个属性: page:当前页码 rows:每页显示记录数 后端 接收page和rows参数 根据参数分页查询 获 ...

  8. 1.使用kubeadm安装kubernetes

    一.环境准备 所有规划主机(一台master,两台node)均需操作 1.关闭防火墙,selinux [root@node1 ~]# systemctl stop firewalld [root@no ...

  9. 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\......”--“拒绝访问。 ”错误

    1.通常的解决方法:原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下: C:\Windows\temp-->属性-->安全-->编辑-->添加NETWORK S ...

  10. 使用Hybris Commerce User API读取用户信息时,电话字段没有返回

    在使用Hybris Commerce User API读取一个user信息时,我遇到一个问题,在API返回的结构里没有包含期望看到的Phone字段. 仔细观察Swagger里对response结构的说 ...