Python pandas数据计数函数value_counts
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python pandas数据计数函数value_counts相关的知识,希望对你有一定的参考价值。
参考技术Avalue_counts是一种查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中个数,类似Excel里面的count函数
其是pandas下面的顶层函数,也可以作用在Series、DataFrame下
常规用法:
pandas 的 value_counts() 函数可以对Series里面的每个值进行计数 并且 排序,默认是降序
可以看出,既可以对分类变量统计,也可以对连续数值变量统计
如果是要对结果升序排列,可以添加 ascending=True 来改变
如果不想看统计的个数,而是想看占比,那么可以设置 normalize=True 即可,结果是小数形式
可以通过apply,对每一列变量进行统计
以上是自己实践中遇到的一些点,分享出来供大家参考学习,欢迎关注DataShare公众号
Python Pandas 使用 dataframe.stack().value_counts() - 如何获取计数对象的值?
【中文标题】Python Pandas 使用 dataframe.stack().value_counts() - 如何获取计数对象的值?【英文标题】:Python Pandas Using dataframe.stack().value_counts() -- How to get values of counted objects? 【发布时间】:2017-03-09 00:22:02 【问题描述】:我有一个数据框,其中每一行代表一周中的某一天,每一列代表当天与服务器通信失败的联网设备的序列号。
我正在尝试获取一整周未能通信的一系列序列号。
代码块:
counts = df.stack().value_counts()
seven_day = counts[counts == 7]
for a in seven_day:
print(a)
问题是没有打印任何内容。我想要的是序列号列表,而不是计数本身。
这个问题是来自: Python Pandas -- Determine if Values in Column 0 Are Repeated in Each Subsequent Column
【问题讨论】:
你想遍历索引seven_day = counts[counts == 7] for a in seven_day.index: print(a)
【参考方案1】:
value_counts
返回一个 Series,其中值作为索引,计数作为值,所以你想遍历索引:
counts = df.stack().value_counts()
seven_day = counts[counts == 7]
for a in seven_day.index:
print(a)
应该工作
【讨论】:
就是这样。感谢@EdChum 在这两个问题上帮助我。【参考方案2】:另一种解决方案是使用Series.iteritems
:
counts = df.stack().value_counts()
seven_day = counts[counts == 7]
for index, val in seven_day.iteritems():
print(index)
【讨论】:
以上是关于Python pandas数据计数函数value_counts的主要内容,如果未能解决你的问题,请参考以下文章
Python Pandas 使用 dataframe.stack().value_counts() - 如何获取计数对象的值?