从Series得到唯一值数组
obj = Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])
uniques = obj.unique()
返回的唯一值是未排序的,如果需要,需要对结果再次排序
uniques.sort()
value_counts计算一个Series中各值出现的频率
obj.value_counts()
c 3
a 3
b 2
d 1
dtype: int64
结果是按值频率降序排列的。同时,value_counts还是pandas的顶级方法,可用于任何数组或序列
pd.value_counts(obj.values, sort=False)
isin用于判断矢量化集合的成员资格,可用于选取Series或DataFrame列中的数据子集
mask = obj.isin(['b', 'c'])
obj[mask]
DataFrame应用value_counts
data = DataFrame({'Qu1': [1, 3, 4, 3, 4],
'Qu2': [2, 3, 1, 2, 3],
'Qu3': [1, 5, 2, 4, 4]})
result = data.apply(pd.value_counts).fillna(0)
Qu1 Qu2 Qu3
1 1.0 1.0 1.0
2 0.0 2.0 1.0
3 2.0 2.0 0.0
4 2.0 0.0 2.0
5 0.0 0.0 1.0