524 字
3 分钟
Python pandas数据计数函数 value_counts
value_counts介绍
value_counts是一种查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中个数,类似Excel里面的count函数
其是pandas下面的顶层函数,也可以作用在Series、DataFrame下
pd.value_counts( values, sort=True, #是否排序,默认是要排序 ascending=False, #默认降序排列 normalize=False, #标准化、转化成百分比形式 bins=None, #可以自定义分组区间,默认是没有,但也可以自定义区间 dropna=True, #是否删除nan,默认删除)常规用法:
import pandas as pd
pd.value_counts()df.value_counts()df['字段'].value_counts()#创建模拟数据
>>> import pandas as pd>>> data=pd.DataFrame({'字段1':[1,2,3,4,5,6,5,3,2,4,5,4,4,4,6], '字段2':['A','B','B','A','A','A','B','B','B','C','C','C','C','B','B']})>>> data 字段1 字段20 1 A1 2 B2 3 B3 4 A4 5 A5 6 A6 5 B7 3 B8 2 B9 4 C10 5 C11 4 C12 4 C13 4 B14 6 B
>>> data.dtypes字段1 int64字段2 objectdtype: objectSeries情况下:
pandas 的 value_counts() 函数可以对Series里面的每个值进行计数并且排序,默认是降序
>>> data['字段2'].value_counts()B 7C 4A 4Name: 字段2, dtype: int64
>>> data['字段1'].value_counts()4 55 36 23 22 21 1Name: 字段1, dtype: int64可以看出,既可以对分类变量统计,也可以对连续数值变量统计
如果是要对结果升序排列,可以添加ascending=True来改变
>>> data['字段2'].value_counts(ascending=True)A 4C 4B 7Name: 字段2, dtype: int64如果不想看统计的个数,而是想看占比,那么可以设置normalize=True即可,结果是小数形式
>>> data['字段2'].value_counts(normalize=True)B 0.466667C 0.266667A 0.266667Name: 字段2, dtype: float64DataFrame情况下
可以通过apply,对每一列变量进行统计
>>> data.apply(pd.value_counts) 字段1 字段21 1.0 NaN2 2.0 NaN3 2.0 NaN4 5.0 NaN5 3.0 NaN6 2.0 NaNA NaN 4.0B NaN 7.0C NaN 4.0通过pandas进行调用
>>> pd.value_counts(data['字段2'])B 7C 4A 4Name: 字段2, dtype: int64以上是自己实践中遇到的一些点,分享出来供大家参考学习,欢迎关注DataShare公众号