来源:DeepHub IMBA本文约1800字,建议阅读5分钟 我们将探讨 Pandas value_counts() 的不同用例。

数据科学家通常将大部分时间花在探索和预处理数据上。当谈到数据分析和理解数据结构时,Pandas value_counts() 是最受欢迎的函数之一。该函数返回一个包含唯一值计数的系列。生成的Series可以按降序或升序排序,通过参数控制包括或排除NA。

在本文中,我们将探讨 Pandas value_counts() 的不同用例。您将学习如何使用它来处理以下常见任务。

  1. 默认参数

  2. 按升序对结果进行排序

  3. 按字母顺序排列结果

  4. 结果中包含空值

  5. 以百分比计数显示结果

  6. 将连续数据分入离散区间

  7. 分组并调用 value_counts()

  8. 将结果系列转换为 DataFrame

  9. 应用于DataFrame

1、默认参数

Pandas value_counts() 函数返回一个包含唯一值计数的系列。默认情况下,结果系列按降序排列,不包含任何 NA 值。例如,让我们从 Titanic 数据集中获取“Embarked”列的计数。

 >>> df['Embarked'].value_counts()S   644C   168Q     77Name: Embarked, dtype: int64

2、按升序对结果进行排序

value_count() 返回的系列默认按降序排列。对于升序结果,我们可以将参数升序设置为 True。

 >>> df['Embarked'].value_counts(ascending=True)Q     77C   168S   644Name: Embarked, dtype: int64

3、按字母顺序排列结果

我们已经学习了参数升序以获得按值计数 ASC 或 DESC 排序的结果。在某些情况下,最好按字母顺序显示我们的结果。这可以通过在 value_counts() 之后调用 sort_index(ascending=True) 来完成,例如

 >>> df['Embarked'].value_counts(ascending=True).sort_index(ascending=True)C   168Q     77S   644Name: Embarked, dtype: int64

4、包括结果中的 NA

默认情况下,结果中会忽略包含任何 NA 值的行。有一个参数 dropna 来配置它。我们可以将该值设置为 False 以包含 NA 的行数。

 df['Embarked'].value_counts(dropna=False)S     644C     168Q       77NaN     2Name: Embarked, dtype: int64

5、以百分比计数显示结果

在进行探索性数据分析时,有时查看唯一值的百分比计数会更有用。这可以通过将参数 normalize 设置为 True 来完成,例如:

 df['Embarked'].value_counts(normalize=True)S   0.724409C   0.188976Q   0.086614Name: Embarked, dtype: float64

如果我们更喜欢用百分号 (%) 格式化结果,我们可以设置 Pandas 显示选项如下:

 >>> pd.set_option('display.float_format', '{:.2f}%'.format)>>> df['Embarked'].value_counts(normalize = True)S   0.72%C   0.19%Q   0.09%Name: Embarked, dtype: float64

6、将连续数据分入离散区间

Pandas value_counts() 可用于使用 bin 参数将连续数据分入离散区间。与 Pandas cut() 函数类似,我们可以将整数或列表传递给 bin 参数。

当整数传递给 bin 时,该函数会将连续值离散化为大小相等的 bin,例如:

 >>> df['Fare'].value_counts(bins=3)(-0.513, 170.776]     871(170.776, 341.553]     17(341.553, 512.329]     3Name: Fare, dtype: int64

当列表传递给 bin 时,该函数会将连续值划分为自定义组,例如:

 >>> df['Fare'].value_counts(bins=[-1, 20, 100, 550])(-1.001, 20.0]   515(20.0, 100.0]     323(100.0, 550.0]     53Name: Fare, dtype: int64

7、分组并执行 value_counts()

Pandas groupby() 允许我们将数据分成不同的组来执行计算以进行更好的分析。一个常见的用例是按某个列分组,然后获取另一列的唯一值的计数。例如,让我们按“Embarked”列分组并获取不同“Sex”值的计数。

 >>> df.groupby('Embarked')['Sex'].value_counts()Embarked Sex   C         male       95female     73Q         male       41female     36S         male     441female   203Name: Sex, dtype: int64

8、将结果系列转换为 DataFrame

Pandas value_counts() 返回一个Series,包括前面带有 MultiIndex 的示例。如果我们希望我们的结果显示为 DataFrame,我们可以在 value_count() 之后调用 to_frame()。

 >>> df.groupby('Embarked')['Sex'].value_counts().to_frame()

9、应用于DataFrame

到目前为止,我们一直将 value_counts() 应用于 Pandas Series,在 Pandas DataFrame 中有一个等效的方法。Pandas DataFrame.value_counts() 返回一个包含 DataFrame 中唯一行计数的系列。

让我们看一个例子来更好地理解它:

 df = pd.DataFrame({'num_legs': [2, 4, 4, 6],'num_wings': [2, 0, 0, 0]},index=['falcon', 'dog', 'cat', 'ant'])>>> df.value_counts()num_legs num_wings4         0           26         0           12         2           1dtype: int64

通过在 df 上调用 value_counts(),它返回一个以 num_legs 和 num_wings 作为索引的 MultiIndex 系列。从结果中,我们可以发现有 2 条记录的 num_legs=4 和 num_wing=0。

同样,我们可以调用 to_frame() 将结果转换为 DataFrame

 >>> df.value_counts().to_frame()

总结

在本文中,我们探讨了 Pandas value_counts() 的不同用例。我希望这篇文章能帮助你节省学习 Pandas 的时间。我建议您查看 value_counts() API 的文档并了解您可以做的其他事情。

谢谢阅读。本文代码在这里:

https://github.com/BindiChen/machine-learning/blob/master/data-analysis/046-pandas-value_counts/pandas-value_counts.ipynb

编辑:文婧

校对:林亦霖

9个value_counts()的小技巧,提高Pandas 数据分析效率相关推荐

  1. 五十个小技巧提高PHP执行效率

    在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境nginx服务,php-fpm配置等等,更多有一点 ...

  2. frac函数_20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子

    Pandas是一个受众广泛的python数据分析库.它提供了许多函数和方法来加快数据分析过程.pandas之所以如此普遍,是因为它的功能强大.灵活简单. 本文将介绍20个常用的 Pandas 函数以及 ...

  3. Word中如何一键生成PPT,五个实用小技巧帮你工作效率翻倍

    Word作为我们常用的文档工具,帮我们大大提高了工作效率,但是对于一个新手小白来说,Word中的大部分技巧都难以快速掌握.但是我们可以掌握一些必备的实用技巧,来提高我们的工作效率,比如小编就为大家带来 ...

  4. 微x怎么设置主题_红人堂:抖音直播预告文案怎么写?5个小技巧提高你的文案吸引力!...

    抖音直播预告文案写得好,直播间人气翻一番! 现在很多主播在直播前都会发布直播预告,以此来提高自己的直播间人气. 但想要最大程度地发挥抖音直播预告文案的作用,你还需要掌握一定的设计技巧. 下面为大家整理 ...

  5. word文档怎么到下一页去写_「word技巧」懂得这几个word排版小技巧,还怕效率不高?...

    熟能生巧.作为一名职场人,使用word是不可避免的.Word玩得遛,工作效率就提高了.不过想要把word玩得遛,掌握一些技巧必不可少. 今天就来看看word排版上经常要用到的几个小技巧. 一.好用的F ...

  6. python排版word文档 效率_「word技巧」懂得这几个word排版小技巧,还怕效率不高?...

    熟能生巧.作为一名职场人,使用word是不可避免的.Word玩得遛,工作效率就提高了.不过想要把word玩得遛,掌握一些技巧必不可少. 今天就来看看word排版上经常要用到的几个小技巧. 一.好用的F ...

  7. 学会这5个CAD小技巧,CAD绘图效率翻10倍!

    在浩辰CAD制图中,我们常常需要进行CAD图形绘制和尺寸标注,尤其是一些复杂的CAD建筑图纸和机械零部件图纸,需要标注大量的尺寸. 那么如何快速地标注CAD图纸,提高CAD绘图效率呢? 1.调取标注管 ...

  8. 9个value_counts()的小技巧,提高Pandas 改进数据分析效率

    数据科学家通常将大部分时间花在探索和预处理数据上. 当谈到数据分析和理解数据结构时,Pandas value_counts() 是最受欢迎的函数之一. 该函数返回一个包含唯一值计数的系列. 生成的Se ...

  9. Python偷懒小技巧-提高10倍工作效率

    说明:增加代码的描述力,可以成倍减少你的LOC,做到简单,并且真切有力 观点:少打字=多思考+少出错,10代码行比50行更能让人明白,以下技巧有助于提高10倍工作效率 1. 交换变量值时避免使用临时变 ...

最新文章

  1. 用于特征选择的F-Score打分及其Python实现
  2. CentOs7下lnmp环境安装
  3. 要么干,要么滚,千万别混
  4. 在ASP.NET使用javascript的一点小技巧(转www.chinacs.net 中文C#技术站 )
  5. 《超级女声》新增 9月4日 娱乐无极限 回顾超女专辑(都是超女) [共39G的精品]
  6. VB6中SendKeys的基本应用
  7. Android/Linux编译开关使用
  8. 地图比例尺、瓦片切片方案、EPSG
  9. 征集国内操作系统项目列表 zz
  10. 国庆假期,人在囧途,感慨颇多
  11. 标注的尺寸避让lisp_AutoCAD中尺寸公差的自动标注 一短小AutoLISP程序轻松实现.doc...
  12. amd的服务器cpu型号大全,amdcpu型号大全
  13. 第二阶段:数据库设计与初始化
  14. java long to int_java int 转 Long
  15. RobotFrameWork Web自动化测试之测试环境搭建
  16. 放射组学常用到的一些工具(软件)
  17. MacOS强制卸载第三方输入法(搜狗输入法、百度输入法)
  18. 现代软件工程 课程总结
  19. 【历史上的今天】8 月 9 日:人工智能理论的奠基者诞生;鸿蒙 OS 发布;“云计算”概念被提出
  20. NTC热敏电阻设计高精度温度计的方案1

热门文章

  1. lstm timestep一般是多少_用LSTM中的不同时间步长预测使用keras
  2. 利用python安装opencv_Linux下安装OpenCV+Python支持
  3. JS-鼠标跟随块(一个小圆点跟着鼠标跑)
  4. python-数据类型
  5. 敏捷开发:如何通过回顾保持学习状态
  6. linux sed 批量替换多个文件中的字符串
  7. .NET技术 ASP.NET中常用的文件上传下载方法(多文件上传)
  8. python 检验数据正态分布程度_Python DataFrame 检验数据正态分布及平均值差异检验...
  9. excel中自动统计计算方法
  10. TOMCAT为什么打破双亲委派的类加载模型