pandas计数函数 :value_counts( )和counts( )的使用

介绍一下如何在python里使用value_counts( )和counts( )进行计数。

一、counts( )函数

1、count()在字符串里的使用

函数体及主要参数:

count(str,start=0 ,end=len(string)

str:要搜索的子字符串

start:开始搜索的位置,默认是0,也就是从第一个字符开始搜索。

end:结束搜索的位置,默认在最后一个字符停止搜索。

实验一下~

首先我们还是先构建一个字符串:

df_str="abcabcdabcdeab5343实验字符串串串串"
df_str

统计一下字符“a”的个数:

统计一下字符“3”的个数:

统计一下字符“串”的个数:

题外小知识:

输出结果的时候,其实L更推荐使用format()函数进行输出,这也是一种更实用的输出方式,类似上面的输出结果,我们可以用format( )进行更高级的输出:

print("统计一下字符 'a' 的个数: \n{}".format(df_str.count('a')))

等以后有空再写一篇关于输入输出的文章~

2、count( )在列表里的使用

创建一个实验列表:

a=[1,2,3,4,5,4,4,4,2,'a','b','a','子','子']

大家注意看下面6种情况下,不同的输出结果:

也就是说在使用的时候,要根据数值类型的不同,正确区别字符。

二、value_counts( )函数

在pandas中,value_counts常用于数据表的计数及排序,它可以用来查看数据表中,指定列里有多少个不同的数据值,并计算每个不同值有在该列中的个数,同时还能根据需要进行排序。

函数体及主要参数:

value_counts(values,sort=True, ascending=False, normalize=False,bins=None,dropna=True)

sort=True: 是否要进行排序;默认进行排序
ascending=False: 默认降序排列;
normalize=False: 是否要对计算结果进行标准化并显示标准化后的结果,默认是False。
bins=None: 可以自定义分组区间,默认是否;
dropna=True:是否删除缺失值nan,默认删除

首先,我们还是先创建一个数据表:

import pandas as pd
import numpy as np
df = pd.DataFrame({'城市':['北京','广州', '天津', '上海', '杭州', '成都', '澳门', '南京','北京','北京'], 
 
                   '收入':[10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000,5000,5000],
 
                    '年龄':[50, 43, 34, 40, 25, 25, 45, 32,25,25]})
df.set_index([["一","二","三","四","五","六","七","八","九","十"]],inplace=True)
df

(1)查看“城市”这一列的计数结果:

可以看到,默认降序排列;

(2)采用升序的方式,查看“收入”这一列:

df['收入'].value_counts(ascending=True)

(3)使用标准化normalize=True的方法,查看“年龄”这一列的计数占比:

df['年龄'].value_counts(ascending=True,normalize=True)

PS:缺失值是默认被删除的,也就是不被计算其中~

而且,如果要计数的对象是numpy里的ndarray类型的话,可以用size的方法,同样可以达到上述的效果,这里就不举例了~

来源:黄佳俊、

物联沃分享整理
物联沃-IOTWORD物联网 » pandas计数函数 :value_counts( )和counts( )的使用

发表评论