value_counts是一种查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中个数,类似Excel里面的count函数
为温宿等地区用户提供了全套网页设计制作服务,及温宿网站建设行业解决方案。主营业务为网站设计制作、网站制作、温宿网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
其是pandas下面的顶层函数,也可以作用在Series、DataFrame下
常规用法:
pandas 的 value_counts() 函数可以对Series里面的每个值进行计数 并且 排序,默认是降序
可以看出,既可以对分类变量统计,也可以对连续数值变量统计
如果是要对结果升序排列,可以添加 ascending=True 来改变
如果不想看统计的个数,而是想看占比,那么可以设置 normalize=True 即可,结果是小数形式
可以通过apply,对每一列变量进行统计
以上是自己实践中遇到的一些点,分享出来供大家参考学习,欢迎关注DataShare公众号
1、complex()
返回一个形如 a+bj 的复数,传入参数分为三种情况:
参数为空时,返回0j;参数为字符串时,将字符串表达式解释为复数形式并返回;参数为两个整数(a,b)时,返回 a+bj;参数只有一个整数 a 时,虚部 b 默认为0,函数返回 a+0j。
2、dir()
不提供参数时,返回当前本地范围内的名称列表;提供一个参数时,返回该对象包含的全部属性。
3、divmod(a,b)
a -- 代表被除数,整数或浮点数;b -- 代表除数,整数或浮点数;根据 除法运算 计算 a,b 之间的商和余数,函数返回一个元组(p,q) ,p 代表商 a//b ,q 代表余数 a%b。
4、enumerate(iterable,start=0)
iterable -- 一个可迭代对象,列表、元组序列等;start -- 计数索引值,默认初始为0‘该函数返回枚举对象是个迭代器,利用 next() 方法依次返回元素值,每个元素以元组形式存在,包含一个计数元素(起始为 start )和 iterable 中对应的元素值。
此刻的心情:
2018年五一后入职新公司做项目实施,一直忙碌着公司的项目;国庆后更是被调到东莞支援项目,工作时间真的成了996了,唯一休息的一天也懒的出去。看看电影、洗洗衣服、与小棉袄视频下、学习学习Python也还挺有趣,也很充实。
Python中range()函数的用法
1、函数原型:range(start, end, scan):
参数含义:
start:计数从start开始。默认是从0开始。
例如range(5)等价于range(0, 5); end:技术到end结束,但不包括end.
例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 scan:每次跳跃的间距,默认为1。
例如:range(0, 5) 等价于 range(0, 5, 1)
2、python中的range()函数的功能很强大,所以我觉得很有必要和大家分享一下,就好像其API中所描述的:
If you do need to iterate over a sequence of numbers, the built-in function range() comes in handy. It generates arithmetic progressions
--有道翻译的结果:如果确实需要迭代一组数字,那么内置函数range()就派上用场了。它生成算术级数。
3、实例调用
#r如果你需要遍历一个数字序列,可以使用内置函数range()
#1、下面遍历一个列表
the_count=[1,2,3,4,5,6]
for number in the_count:
print("this is count %d" % number)
print("--------------------")
#2、遍历一个混合列表
list=[1,2,3,4,"zll",5,6,"hello",7,8.9]
for i in range(len(list)):
print (list[i],end="、")
print("\n--------------------")
#3、用range()函数生成一个列表
for i in range(5):
print(i,end="、")
print("\n--------------------")
#4、range(10),其中参数10代表:从0到10的一个序列,当然不包含10
print("range(10)表示:" ,range(10))
listA=[i for i in range(10)] print(listA)
print("--------------------")
#5、我们也可以自定义起始点和结束点 #我们定义了一个从5开始的起始点,到100结束的结束点
print("range(5,100)表示",range(5,100))
listB=[i for i in range(5,100)]
print(listB) print("--------------------")
#6、定义了这些后,我们还可以定义步长 #我们定义一个从1开始到30结束,步长为3的列表
print('range(1,30,3)表示:',range(1,30,3))
listC = [i for i in range(1,30,3)]
print(listC)
4、自己运行试试结果哦...
1.定义函数
def get_counts(sequence):
counts={}
for x in sequence:
if x in counts:
counts[x]+= 1
else:
counts[x]=1
return counts
2.定义函数(利用python标准包)
from collections import defaultdict
def get_counts2(sequence):
counts=defaultdict(int)#所以得值均会被初始化W为0
for x in sequence:
if x in counts:
counts[x]+= 1
return counts
3.python标准库中找到collections.Counter类
from collections improt Counter
counter(sequence)
以下代码的功能是 统计列表中重复项的出现次数
这里面就用到了 count() 函数
mylist = ['apple', 'banana', 'grape', 'banana', 'apple', 'grape', 'grape']
myset = set(mylist)
for item in myset:
print("the %s has been found %d times" % (item, mylist.count(item)))
函数COUNT在计数时,将把数值型的数字计算进去;但是错误值、空值、逻辑值、日期、文字则被忽略。
如果参数是一个数组或引用,那么只统计数组或引用中的数字;数组中或引用的空单元格、逻辑值、文字或错误值都将忽略。如果要统计逻辑值、文字或错误值,请使用函数COUNTA(COUNTIF按EXCEL的说明也行,但常出毛病)。
排序过程
假设输入的线性表L的长度为n,L=L1,L2,..,Ln;线性表的元素属于有限偏序集S,|S|=k且k=O(n),S={S1,S2,..Sk};则计数排序可以描述如下:
1、扫描整个集合S,对每一个Si∈S,找到在线性表L中小于等于Si的元素的个数T(Si);
2、扫描整个线性表L,对L中的每一个元素Li,将Li放在输出线性表的第T(Li)个位置上,并将T(Li)减1。
以上内容参考:百度百科-计数排序