此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd

转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的)

经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas

前言

上一节我们重点介绍了针对文本条件的统计方式,这次来把数值相关的讲解一下,并且用一个 Excel 操作思维带你理解 pandas 的运算逻辑。

继续使用泰坦尼克号沉船事件的乘客名单作为例子:

  • pclass:船舱等级
  • survived:是否生还
  • fare:票价
  • sex:性别
  • home.dest:住址

如果你看过上一节文章,想必应该理解到,在 pandas 中,不管是数值或是文本的条件统计,本质都是构造条件 bool 列,之后的处理是一样的。

废话少说,直接看各种复杂需求!


案例1:简单需求

"30岁以上的人数"

先看看 Excel 函数公式的做法:

  • 简单使用 countifs 即可
  • 注意,第二个参数使用文本(双引号包围),主要是因为需要使用 大于号。这使得函数公式的语义更好

pandas 中数值条件也很非常容易表达:

  • 行1:df.age >30 构造出"年龄大于30"的 bool 列

与 Excel之间的关系

你会发现,其实 pandas 中的运算操作,与 Excel 函数公式的运算是非常相似(数组公式更相似),pandas 的操作就像你在第一行写了一个处理逻辑公式,他就自动为你把逻辑公式复制一整列。

不知道我说啥?看看下面的 Excel 操作演示,来实现"30岁以上的人数":

代码 df.age >30 相当于如下操作:

  • pandas 代码, df.age >30 ,构造出条件 bool 列,过程如上
  • 在数据旁边新增一列,直接执行 C2 单元格是否大于30,结果是一个 bool 值
  • 由于 pandas 代码是直接指定 年龄 列是否大于30,因此相当于自动把 E2 单元格的公式复制下去

此时,代码 df[cond] ,相当于如下操作:

  • df[cond] 相当于 df[df.age > 30]
  • 相当于在辅助列上做筛选,把 true 值的行筛选出来!
  • 所以你会发现,如果只是执行 df[cond] ,得到的是那些年龄大于30的行

如果你熟悉 Excel 的功能,你可能会说:"这不就是智能表格?!"

是的,智能表格更能体现,如下:

  • 创建表格
  • 在表格旁边输入公式
  • 注意此时公式中的引用不是单元格地址,而是直接以列名显示
  • 这个地方与 pandas 非常相似,这是因为他们都是在表达,你在操作一个有结构的表格

当你按下回车,公式自动填充:


其他各种需求

当你理解了上面的思路,那么只要你熟悉 pandas 各种构造 bool 列的技巧,各种需求基本难不倒你。

"30岁以上 男女的人数":

一个个写,太麻烦了,直接条件筛选,分组统计:


"男女高于各自性别的平均年龄的人数"

  • 有没有发现男性的人数与之前需求的人数很接近?因为刚好男性的平均年龄在30岁左右

当然,还是可以直接分组统计的:


"男女各自年龄最小的人的资料":

  • 他们都在 S 港口上船,同是三等舱
  • 女生获救了,男生遇难了

"男女各自年龄最大的人的资料":

  • 他们都是在 S 港口上船,同是一等舱
  • 他们都获救了
  • 一等舱可能更靠近甲板,逃生更容易

最后来一个复杂一点的需求。

"看看各个年龄段,男女的生还情况":

  • 简单让 pandas 按数据中的年龄,平均划分成4段
  • 大概可以看出,男性的生还率低于女性,特别是20到40岁这个年龄段
  • 更多针对泰坦尼克号沉船事件数据的详细分析,可以查看 公众号中:数据大宇宙 > 数据分析 > 探索分析 系列文章

关于透视表和数据分段,请查看 pandas 专栏 [带你玩转Python数据处理—pandas] 相关文章

pandas 第一行_用Excel表格带你学习pandas最核心的处理操作,不再害怕条件统计相关推荐

  1. 如何通过VB合并Excel单元格以及设置Excel行高?VB创建Excel表格,合并单元格,生成图形等操作

    如何通过VB合并Excel单元格以及设置Excel行高? 例如:我想把第一列的第4,5,6,7行合并...我在怎样让合并单元格里的字居中,怎样改变字体. 请不吝赐教... ============== ...

  2. pandas使用read_excel函数读取excel表格数据为dataframe、设置sheet_name参数为表单索引位置列表则读取多个表单的数据并返回dataframe字典

    pandas使用read_excel函数读取excel表格数据为dataframe.使用sheet_name参数指定读取excel表格中指定的sheet表单.设置sheet_name参数为表单索引位置 ...

  3. pandas 选取第一行_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  4. python删除excel第一行_如何用 Python 清洗数据?

    林骥的第 38 篇文章 0. 序言在做数据分析之前,我们首先要明确数据分析的目标,然后应用数据分析的思维,对目标进行细分,再采取相应的行动.我们可以把数据分析细分为以下 8 个步骤:(1)读取(2)清 ...

  5. qt 表格中插入一行_在EXCEL表格中,快速插入多行、多列的技巧

    在使用Excel过程中,我们会遇到需要插入相同格式的多行或多列,如果一行行或一列列的插入,对于插入的数量较少的情况还是适用的.可是如果需要插入上百的行或列,使用此方法就比较费时费力啦.分享几个小技巧实 ...

  6. 打印表格留标题怎么设置_打印Excel表格时每页都打印标题行的设置方法

    为了使打印出来的Excel文档便于阅读,在进行打印时可以在各页都打印标题行,下面介绍打印Excel表格时每页都打印标题行的具体设置方法. 1.打开需要打印的工作表,在"页面布局"选 ...

  7. excel表格末尾添加一行_在EXCEL表格中,快速插入多行、多列的技巧

    在使用Excel过程中,我们会遇到需要插入相同格式的多行或多列,如果一行行或一列列的插入,对于插入的数量较少的情况还是适用的.可是如果需要插入上百的行或列,使用此方法就比较费时费力啦.分享几个小技巧实 ...

  8. excel怎么批量插行_批量提取表格名称、插入空列,教你三下五除二秒速完成!...

    点击上方蓝字关注星标★不迷路 本文作者:黄群金本文编辑:小叮.竺兰每天和表哥表姐们打交道,发现他们问的大多数问题,都是怎么整理数据和表格.活生生的表格搬运工~原本要花很多时间才能搞定的工作,其实只要用 ...

  9. access调整行高和列宽_《excel表格怎么调整行高和列宽》 EXCEL 表格如何导出至WORD 格式...

    EXCEL 表格如何导出至WORD 格式 1.演示使用的软件为word文字处理软件,软件为office家学生版2016. 2.首先打开我档,并在上方栏找到插入菜单,单击后在工具栏中找到文本-对象. 3 ...

最新文章

  1. 腾讯医疗AI新突破:提出器官神经网络,全自动辅助头颈放疗规划 | 论文
  2. 饼图大小调整_别让这些细节毁了你的图表,饼图制作的三大准则和七大细节
  3. 硬回车与软回车[转]
  4. python编译器在哪下载-Python-IDLE的下载安装及使用
  5. 找出两列数据的差集_excel快速查找数据差异项
  6. Object C学习笔记19-枚举(转)
  7. 用folium模块画地理图_使用Folium表示您的地理空间数据
  8. mysql系列_Mysql系列(三)—— Mysql字符集和比较规则
  9. SPSS分析技术:多元方差分析
  10. android 网络gif_Android SurfaceView实现GIF动画架包,播放GIF动画
  11. 使用Carbide进行调试时免除重新启动模拟器的一种方法(转)
  12. 这文字的起始位置_如何用AE快速制造文字特效视频的效果?3分钟教你学会
  13. 从dig命令理解DNS
  14. 新华象形大字典隐私用户数据声明
  15. Windows+Ubuntu双系统如何彻底删除Ubuntu操作系统
  16. 淘宝购物车测试用例+流程图
  17. ionic 3 http htpps
  18. CPU100% 问题排查
  19. 我对移动支付的看法_谈谈我对微信支付的看法
  20. 决策树--信息增益、信息增益比、Geni指数的理解

热门文章

  1. 小程序 pagescrollto_微信小程序学习笔记(三)-- 首页及详情页开发
  2. C++ auto_ptr存在的问题
  3. Python爬取网页
  4. Python爬虫实现:三连文章参与抽奖
  5. VS 编写 x64 内联汇编
  6. VisualStudio 的 Spy++ —— 窗口、消息 的 查看分析利器
  7. C++学习之路 | PTA乙级——1092 最好吃的月饼 (20 分)(精简)
  8. 讲讲我对比特币和区块链的认知,挖矿不难,挖到难
  9. php-frm进程管理,PHP内核探索-进程管理
  10. redis value最大值_Redis从入门到深入-String的value