1 unique () )
统计list的不同值时,返回的是array。有三个参数,可以分别统计不同的量,返回的都是array。
如果list中的元素也是list,则尽量不要使用此方法。
import numpy as np
a=[ 1,5,4,2,3,3,5 ]
#返回一个阵列
print(NP.unique ) (a ) ) ) ) ) )。
# [1 2 3 4 5]
#返回此元素在list中首次出现的索引
print(NP.unique(a,return_index=True ) )
# (array ([ 1,2,3,4,5 ] ),array ([ 0,3,4,2,1 ] )
#返回原始list中每个元素在新list中的相应索引
print(NP.unique(a,return_inverse=True ) )
# (array ([ 1,2,3,4,5 ] ),array ([ 0,4,3,1,2,2,4 ] )
#返回此元素在list中出现的次数
print(NP.unique(a,return_counts=True ) )
# (array ([ 1,2,3,4,5 ] ),array ([ 1,1,2,1,2 ] )
添加#参数时,(unique ) )返回tuple。 这里利用了tuple的性质,即有多少元素可以代入对应的变量
p、q、m、n=NP.unique(a,return_index=True,return_inverse=True,return_counts=True ) ) ) )
打印(p,q,m,n ) )。
# [ 12345 ] [ 03421 ] [ 0431224 ] [ 112122 ]
请注意,如果#list中的元素是list而不是数字,则输出的数据类型取决于list中元素的长度
#采用这种方法,加重list中的元素或求出中元素的个数不是好方法,容易出错
如果合并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.data frame ({ ' a ' : [ 0,1,1 ],' b ' : [ 0,5,6 ] } )
是打印(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.group by [ ' user _ id ' ] [ ' listing _ id ' ].agg [ ' n unique ' ].agg
# user_id nunique
# 0 40 1
# 1 56 1
# 2 98 1
# 3 103 1
# 4 122 1